diff --git a/VECTO.sln b/VECTO.sln new file mode 100644 index 0000000000000000000000000000000000000000..9e2974dc79e77aae3c90b49bac7352c33a776667 --- /dev/null +++ b/VECTO.sln @@ -0,0 +1,44 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.21005.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VECTO", "VECTO\VECTO.vbproj", "{AAC0F132-0A9F-45B3-B682-77AC9B24B352}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VectoAuxiliaries", "VECTOAux\VectoAuxiliaries\VectoAuxiliaries.vbproj", "{FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VectoAuxiliariesTests", "VECTOAux\VectoAuxiliariesTests\VectoAuxiliariesTests.vbproj", "{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|x86.ActiveCfg = Debug|x86 + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|x86.Build.0 = Debug|x86 + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.Build.0 = Release|Any CPU + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|x86.ActiveCfg = Release|x86 + {AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|x86.Build.0 = Release|x86 + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Debug|x86.ActiveCfg = Debug|Any CPU + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|Any CPU.Build.0 = Release|Any CPU + {FDEEE460-0B8A-4EF6-8D9E-72F203A50F65}.Release|x86.ActiveCfg = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|x86.ActiveCfg = Debug|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.Build.0 = Release|Any CPU + {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/VECTO/ApplicationEvents.vb b/VECTO/ApplicationEvents.vb new file mode 100644 index 0000000000000000000000000000000000000000..d65723267de1ee7cffcffa8c298550aef5cb6f94 --- /dev/null +++ b/VECTO/ApplicationEvents.vb @@ -0,0 +1,134 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Namespace My + + ' The following events are available for MyApplication: + ' + ' Startup: Raised when the application starts even before the creation of the Startup-forms. + ' Shutdown: Raised after closing all the application forms. This event is not raised if the application terminates abnormally. + ' UnhandledException: Raised if the application encounters an unhandled exception. + ' StartupNextInstance: Raised when launching a single-instance application, and one is already active. + ' NetworkAvailabilityChanged: Occurs when connecting or disconnecting to the network. + Partial Friend Class MyApplication + + 'Initialization + Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup + + Dim s As String + Dim i As Int16 + Dim file As cFile_V3 + + 'Paths + MyAppPath = My.Application.Info.DirectoryPath & "\" + MyConfPath = MyAppPath & "Config\" + MyDeclPath = MyAppPath & "Declaration\" + FB_FilHisDir = MyConfPath & "FileHistory\" + + 'Log + LogFile = New cLogFile + If Not LogFile.StartLog() Then + MsgBox("Error! Can't access log file. Application folder needs read/write permissions!") + e.Cancel = True + End If + + 'If folder does not exist: Create! + If Not IO.Directory.Exists(MyConfPath) Then + Try + IO.Directory.CreateDirectory(MyConfPath) + Catch ex As Exception + MsgBox("Failed to create directory '" & MyConfPath & "'!", MsgBoxStyle.Critical) + LogFile.WriteToLog(tMsgID.Err, "Failed to create directory '" & MyConfPath & "'!") + e.Cancel = True + End Try + IO.File.Create(MyConfPath & "joblist.txt") + IO.File.Create(MyConfPath & "cyclelist.txt") + End If + If Not IO.Directory.Exists(FB_FilHisDir) Then + Try + IO.Directory.CreateDirectory(FB_FilHisDir) + + 'Preconfigure Directories.txt + Try + s = IO.Directory.GetParent(My.Application.Info.DirectoryPath).ToString & "\" + Catch ex As Exception + s = MyAppPath + End Try + Try + + file = New cFile_V3 + file.OpenWrite(FB_FilHisDir & "Directories.txt") + file.WriteLine(s) + For i = 2 To 20 + file.WriteLine(" ") + Next + file.Close() + Catch ex As Exception + + End Try + + Catch ex As Exception + MsgBox("Failed to create directory '" & FB_FilHisDir & "'!", MsgBoxStyle.Critical) + LogFile.WriteToLog(tMsgID.Err, "Failed to create directory '" & FB_FilHisDir & "'!") + e.Cancel = True + End Try + End If + + 'Separator! + SetCulture = False + If System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator <> "." Then + SetCulture = True + Try + System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") + System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-US") + 'MSGtoForm(8, "Set CurrentCulture to 'en-US'", True) + Catch ex As Exception + GUImsg(tMsgID.Err, "Failed to set Application Regional Settings to 'en-US'! Check system decimal- and group- separators!") + End Try + End If + + 'Initialise Classes + sKey = New csKey + JobFileList = New List(Of String) + JobCycleList = New List(Of String) + DEV = New cDEV + Declaration = New cDeclaration + + Cfg = New cConfig 'ACHTUNG: cConfig.New löst cConfig.SetDefault aus welches sKey benötigt dehalb muss sKey schon vorher initialisiert werden!! + Cfg.FilePath = MyConfPath & "settings.json" + + ProgBarCtrl = New cProgBarCtrl + + 'Config + Cfg.ConfigLOAD() + + 'Restart log if log file too large + LogFile.SizeCheck() + + + 'License initialization + Lic = New vectolic.cLicense + Lic.AppVersion = VECTOvers + Lic.FilePath = MyAppPath & "license.dat" + + End Sub + + Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException + e.ExitApplication = True + MsgBox("ERROR!" & ChrW(10) & ChrW(10) & e.Exception.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error") + LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Exception.ToString()) + End Sub + + End Class + +End Namespace + diff --git a/VECTO/ClassDiagram1.cd b/VECTO/ClassDiagram1.cd new file mode 100644 index 0000000000000000000000000000000000000000..7b894197b9d8d79b2ad4afafc2c11c60f33c4b42 --- /dev/null +++ b/VECTO/ClassDiagram1.cd @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram /> \ No newline at end of file diff --git a/VECTO/ClassDiagram2.cd b/VECTO/ClassDiagram2.cd new file mode 100644 index 0000000000000000000000000000000000000000..262a721bfa660d09669ce0fd657b27119f9e2c93 --- /dev/null +++ b/VECTO/ClassDiagram2.cd @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<ClassDiagram MajorVersion="1" MinorVersion="1"> + <Class Name="VECTO.cVECTO"> + <Position X="0.5" Y="0.5" Width="1.5" /> + <TypeIdentifier> + <HashCode>ADFGAASAAQQCYoKYBgiIAAAIIAOAgAIAFidCSCCApAA=</HashCode> + <FileName>Input Files\cVECTO.vb</FileName> + </TypeIdentifier> + </Class> + <Font Name="Segoe UI" Size="9" /> +</ClassDiagram> \ No newline at end of file diff --git a/VECTO/File Browser/FB_Dialog.designer.vb b/VECTO/File Browser/FB_Dialog.designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..0ae8e30332e7aeb0b0692a1a639d23f1ceb6d81d --- /dev/null +++ b/VECTO/File Browser/FB_Dialog.designer.vb @@ -0,0 +1,379 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class FB_Dialog + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.ButtonNewDir = New System.Windows.Forms.Button() + Me.ButtonDesktop = New System.Windows.Forms.Button() + Me.ButtonHisFolder = New System.Windows.Forms.Button() + Me.ButtonFolderBack = New System.Windows.Forms.Button() + Me.TextBoxSearchFolder = New System.Windows.Forms.TextBox() + Me.ListViewFolder = New System.Windows.Forms.ListView() + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ComboBoxDrive = New System.Windows.Forms.ComboBox() + Me.ButtonAll = New System.Windows.Forms.Button() + Me.LabelFileAnz = New System.Windows.Forms.Label() + Me.ComboBoxExt = New System.Windows.Forms.ComboBox() + Me.ButtonHisFile = New System.Windows.Forms.Button() + Me.TextBoxSearchFile = New System.Windows.Forms.TextBox() + Me.ListViewFiles = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ContextMenuFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.RenameFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DeleteFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TextBoxPath = New System.Windows.Forms.TextBox() + Me.ContextMenuHisFolder = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ContextMenuHisFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ButtonOK = New System.Windows.Forms.Button() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.TextBoxCurrent = New System.Windows.Forms.TextBox() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.ContextMenuFile.SuspendLayout() + Me.SuspendLayout() + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.SplitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.SplitContainer1.Location = New System.Drawing.Point(12, 36) + Me.SplitContainer1.Name = "SplitContainer1" + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.ButtonNewDir) + Me.SplitContainer1.Panel1.Controls.Add(Me.ButtonDesktop) + Me.SplitContainer1.Panel1.Controls.Add(Me.ButtonHisFolder) + Me.SplitContainer1.Panel1.Controls.Add(Me.ButtonFolderBack) + Me.SplitContainer1.Panel1.Controls.Add(Me.TextBoxSearchFolder) + Me.SplitContainer1.Panel1.Controls.Add(Me.ListViewFolder) + Me.SplitContainer1.Panel1.Controls.Add(Me.ComboBoxDrive) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.ButtonAll) + Me.SplitContainer1.Panel2.Controls.Add(Me.LabelFileAnz) + Me.SplitContainer1.Panel2.Controls.Add(Me.ComboBoxExt) + Me.SplitContainer1.Panel2.Controls.Add(Me.ButtonHisFile) + Me.SplitContainer1.Panel2.Controls.Add(Me.TextBoxSearchFile) + Me.SplitContainer1.Panel2.Controls.Add(Me.ListViewFiles) + Me.SplitContainer1.Size = New System.Drawing.Size(764, 293) + Me.SplitContainer1.SplitterDistance = 382 + Me.SplitContainer1.TabIndex = 5 + Me.SplitContainer1.TabStop = False + ' + 'ButtonNewDir + ' + Me.ButtonNewDir.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonNewDir.Location = New System.Drawing.Point(202, 3) + Me.ButtonNewDir.Name = "ButtonNewDir" + Me.ButtonNewDir.Size = New System.Drawing.Size(38, 21) + Me.ButtonNewDir.TabIndex = 21 + Me.ButtonNewDir.TabStop = False + Me.ButtonNewDir.Text = "New" + Me.ButtonNewDir.UseVisualStyleBackColor = True + ' + 'ButtonDesktop + ' + Me.ButtonDesktop.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonDesktop.Location = New System.Drawing.Point(246, 3) + Me.ButtonDesktop.Name = "ButtonDesktop" + Me.ButtonDesktop.Size = New System.Drawing.Size(57, 21) + Me.ButtonDesktop.TabIndex = 22 + Me.ButtonDesktop.TabStop = False + Me.ButtonDesktop.Text = "Desktop" + Me.ButtonDesktop.UseVisualStyleBackColor = True + ' + 'ButtonHisFolder + ' + Me.ButtonHisFolder.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHisFolder.Location = New System.Drawing.Point(309, 3) + Me.ButtonHisFolder.Name = "ButtonHisFolder" + Me.ButtonHisFolder.Size = New System.Drawing.Size(68, 21) + Me.ButtonHisFolder.TabIndex = 24 + Me.ButtonHisFolder.TabStop = False + Me.ButtonHisFolder.Text = "His / Fav" + Me.ButtonHisFolder.UseVisualStyleBackColor = True + ' + 'ButtonFolderBack + ' + Me.ButtonFolderBack.Location = New System.Drawing.Point(63, 3) + Me.ButtonFolderBack.Name = "ButtonFolderBack" + Me.ButtonFolderBack.Size = New System.Drawing.Size(28, 21) + Me.ButtonFolderBack.TabIndex = 20 + Me.ButtonFolderBack.TabStop = False + Me.ButtonFolderBack.Text = "<" + Me.ButtonFolderBack.UseVisualStyleBackColor = True + ' + 'TextBoxSearchFolder + ' + Me.TextBoxSearchFolder.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxSearchFolder.Location = New System.Drawing.Point(3, 266) + Me.TextBoxSearchFolder.Name = "TextBoxSearchFolder" + Me.TextBoxSearchFolder.Size = New System.Drawing.Size(374, 20) + Me.TextBoxSearchFolder.TabIndex = 15 + ' + 'ListViewFolder + ' + Me.ListViewFolder.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListViewFolder.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader3}) + Me.ListViewFolder.FullRowSelect = True + Me.ListViewFolder.GridLines = True + Me.ListViewFolder.HideSelection = False + Me.ListViewFolder.Location = New System.Drawing.Point(3, 30) + Me.ListViewFolder.MultiSelect = False + Me.ListViewFolder.Name = "ListViewFolder" + Me.ListViewFolder.Size = New System.Drawing.Size(374, 230) + Me.ListViewFolder.TabIndex = 10 + Me.ListViewFolder.UseCompatibleStateImageBehavior = False + Me.ListViewFolder.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Directory" + ' + 'ComboBoxDrive + ' + Me.ComboBoxDrive.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ComboBoxDrive.FormattingEnabled = True + Me.ComboBoxDrive.Location = New System.Drawing.Point(3, 3) + Me.ComboBoxDrive.Name = "ComboBoxDrive" + Me.ComboBoxDrive.Size = New System.Drawing.Size(54, 21) + Me.ComboBoxDrive.TabIndex = 5 + ' + 'ButtonAll + ' + Me.ButtonAll.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonAll.Location = New System.Drawing.Point(239, 3) + Me.ButtonAll.Name = "ButtonAll" + Me.ButtonAll.Size = New System.Drawing.Size(71, 21) + Me.ButtonAll.TabIndex = 19 + Me.ButtonAll.Text = "Select All" + Me.ButtonAll.UseVisualStyleBackColor = True + ' + 'LabelFileAnz + ' + Me.LabelFileAnz.AutoSize = True + Me.LabelFileAnz.Location = New System.Drawing.Point(3, 7) + Me.LabelFileAnz.Name = "LabelFileAnz" + Me.LabelFileAnz.Size = New System.Drawing.Size(37, 13) + Me.LabelFileAnz.TabIndex = 7 + Me.LabelFileAnz.Text = "0 Files" + ' + 'ComboBoxExt + ' + Me.ComboBoxExt.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ComboBoxExt.FormattingEnabled = True + Me.ComboBoxExt.Location = New System.Drawing.Point(291, 266) + Me.ComboBoxExt.Name = "ComboBoxExt" + Me.ComboBoxExt.Size = New System.Drawing.Size(82, 21) + Me.ComboBoxExt.TabIndex = 20 + ' + 'ButtonHisFile + ' + Me.ButtonHisFile.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHisFile.Location = New System.Drawing.Point(316, 3) + Me.ButtonHisFile.Name = "ButtonHisFile" + Me.ButtonHisFile.Size = New System.Drawing.Size(57, 21) + Me.ButtonHisFile.TabIndex = 24 + Me.ButtonHisFile.TabStop = False + Me.ButtonHisFile.Text = "History" + Me.ButtonHisFile.UseVisualStyleBackColor = True + ' + 'TextBoxSearchFile + ' + Me.TextBoxSearchFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxSearchFile.Location = New System.Drawing.Point(3, 266) + Me.TextBoxSearchFile.Name = "TextBoxSearchFile" + Me.TextBoxSearchFile.Size = New System.Drawing.Size(282, 20) + Me.TextBoxSearchFile.TabIndex = 15 + ' + 'ListViewFiles + ' + Me.ListViewFiles.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListViewFiles.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1}) + Me.ListViewFiles.ContextMenuStrip = Me.ContextMenuFile + Me.ListViewFiles.FullRowSelect = True + Me.ListViewFiles.GridLines = True + Me.ListViewFiles.HideSelection = False + Me.ListViewFiles.Location = New System.Drawing.Point(3, 30) + Me.ListViewFiles.Name = "ListViewFiles" + Me.ListViewFiles.Size = New System.Drawing.Size(370, 230) + Me.ListViewFiles.TabIndex = 10 + Me.ListViewFiles.UseCompatibleStateImageBehavior = False + Me.ListViewFiles.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Filename" + Me.ColumnHeader1.Width = 251 + ' + 'ContextMenuFile + ' + Me.ContextMenuFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RenameFileToolStripMenuItem, Me.DeleteFileToolStripMenuItem}) + Me.ContextMenuFile.Name = "ContextMenuFile" + Me.ContextMenuFile.Size = New System.Drawing.Size(148, 48) + ' + 'RenameFileToolStripMenuItem + ' + Me.RenameFileToolStripMenuItem.Name = "RenameFileToolStripMenuItem" + Me.RenameFileToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.RenameFileToolStripMenuItem.Text = "Rename File..." + ' + 'DeleteFileToolStripMenuItem + ' + Me.DeleteFileToolStripMenuItem.Name = "DeleteFileToolStripMenuItem" + Me.DeleteFileToolStripMenuItem.Size = New System.Drawing.Size(147, 22) + Me.DeleteFileToolStripMenuItem.Text = "Delete File..." + ' + 'TextBoxPath + ' + Me.TextBoxPath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxPath.Location = New System.Drawing.Point(12, 335) + Me.TextBoxPath.Name = "TextBoxPath" + Me.TextBoxPath.Size = New System.Drawing.Size(764, 20) + Me.TextBoxPath.TabIndex = 15 + ' + 'ContextMenuHisFolder + ' + Me.ContextMenuHisFolder.Name = "ContextMenuFolderHis" + Me.ContextMenuHisFolder.Size = New System.Drawing.Size(61, 4) + ' + 'ContextMenuHisFile + ' + Me.ContextMenuHisFile.Name = "ContextMenuFileHis" + Me.ContextMenuHisFile.Size = New System.Drawing.Size(61, 4) + ' + 'ButtonOK + ' + Me.ButtonOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOK.DialogResult = System.Windows.Forms.DialogResult.OK + Me.ButtonOK.Location = New System.Drawing.Point(620, 361) + Me.ButtonOK.Name = "ButtonOK" + Me.ButtonOK.Size = New System.Drawing.Size(75, 23) + Me.ButtonOK.TabIndex = 20 + Me.ButtonOK.TabStop = False + Me.ButtonOK.Text = "OK" + Me.ButtonOK.UseVisualStyleBackColor = True + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButtonCancel.Location = New System.Drawing.Point(701, 361) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 23) + Me.ButtonCancel.TabIndex = 25 + Me.ButtonCancel.TabStop = False + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'TextBoxCurrent + ' + Me.TextBoxCurrent.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxCurrent.Cursor = System.Windows.Forms.Cursors.Hand + Me.TextBoxCurrent.Location = New System.Drawing.Point(12, 14) + Me.TextBoxCurrent.Name = "TextBoxCurrent" + Me.TextBoxCurrent.ReadOnly = True + Me.TextBoxCurrent.Size = New System.Drawing.Size(764, 20) + Me.TextBoxCurrent.TabIndex = 0 + Me.TextBoxCurrent.TabStop = False + ' + 'FB_Dialog + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButtonCancel + Me.ClientSize = New System.Drawing.Size(788, 391) + Me.Controls.Add(Me.TextBoxCurrent) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ButtonOK) + Me.Controls.Add(Me.TextBoxPath) + Me.Controls.Add(Me.SplitContainer1) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "FB_Dialog" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "File Browser" + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + Me.SplitContainer1.Panel2.PerformLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.ContextMenuFile.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents ComboBoxDrive As System.Windows.Forms.ComboBox + Friend WithEvents ListViewFolder As System.Windows.Forms.ListView + Friend WithEvents ListViewFiles As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents TextBoxSearchFolder As System.Windows.Forms.TextBox + Friend WithEvents TextBoxSearchFile As System.Windows.Forms.TextBox + Friend WithEvents TextBoxPath As System.Windows.Forms.TextBox + Friend WithEvents ButtonFolderBack As System.Windows.Forms.Button + Friend WithEvents ContextMenuHisFolder As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ContextMenuHisFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ButtonHisFolder As System.Windows.Forms.Button + Friend WithEvents ButtonHisFile As System.Windows.Forms.Button + Friend WithEvents ButtonOK As System.Windows.Forms.Button + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ComboBoxExt As System.Windows.Forms.ComboBox + Friend WithEvents TextBoxCurrent As System.Windows.Forms.TextBox + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents LabelFileAnz As System.Windows.Forms.Label + Friend WithEvents ButtonDesktop As System.Windows.Forms.Button + Friend WithEvents ContextMenuFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents RenameFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents DeleteFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ButtonNewDir As System.Windows.Forms.Button + Friend WithEvents ButtonAll As System.Windows.Forms.Button + +End Class diff --git a/VECTO/File Browser/FB_Dialog.resx b/VECTO/File Browser/FB_Dialog.resx new file mode 100644 index 0000000000000000000000000000000000000000..1e27a480288df315397abee2b700aa07cad8c3b5 --- /dev/null +++ b/VECTO/File Browser/FB_Dialog.resx @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ContextMenuFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>329, 17</value> + </metadata> + <metadata name="ContextMenuHisFolder.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="ContextMenuHisFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>180, 17</value> + </metadata> +</root> \ No newline at end of file diff --git a/VECTO/File Browser/FB_Dialog.vb b/VECTO/File Browser/FB_Dialog.vb new file mode 100644 index 0000000000000000000000000000000000000000..39f14aa8012679cb18e851dd0af309d22b22c160 --- /dev/null +++ b/VECTO/File Browser/FB_Dialog.vb @@ -0,0 +1,1008 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' File Browser dialog. Entirely controlled by cFilebrowser class. +''' </summary> +''' <remarks></remarks> +Public Class FB_Dialog + + Private MyFolder As String + Private MyFiles() As String + Private MyDrive As String + Private UpdateLock As Boolean + Private Initialized As Boolean + Private MyID As String + Private MyExt() As String + Private LastFile As String + Private bFileMustExist As Boolean + Private bOverwriteCheck As Boolean + Private bMultiFiles As Boolean + Private NoExt As Boolean + Private bBrowseFolder As Boolean + Private bForceExt As Boolean + Private ExtListSingle As ArrayList + Private ExtListMulti As ArrayList + Private LastExt As String + Private bLightMode As Boolean + + Private Const FavText As String = "Edit Favorites..." + Private Const EmptyText As String = " " + Private Const NoFavString As String = "<undefined>" + + 'New + Public Sub New(ByVal LightMode As Boolean) + ' This call is required by the Windows Form Designer. + InitializeComponent() + ' Append any initialization after the InitializeComponent() call. + MyID = "Default" + UpdateLock = False + Initialized = False + MyFolder = "" + MyDrive = "" + LastFile = "" + bOverwriteCheck = False + bFileMustExist = False + bMultiFiles = False + NoExt = True + bBrowseFolder = False + bLightMode = LightMode + Me.ButtonHisFile.Enabled = Not bLightMode + End Sub + + 'Resize + Private Sub FB_Dialog_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize + Resized() + End Sub + + 'Shown + Private Sub FileBrowser_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Resized() + Me.TextBoxPath.Focus() + Me.TextBoxPath.SelectAll() + End Sub + + 'Resized ListView Format + Private Sub Resized() + Me.ListViewFolder.Columns(0).Width = -2 + Me.ListViewFiles.Columns(0).Width = -2 + End Sub + + 'SplitterMoved + Private Sub SplitContainer1_SplitterMoved(ByVal sender As System.Object, ByVal e As System.Windows.Forms.SplitterEventArgs) Handles SplitContainer1.SplitterMoved + If Initialized Then Resized() + End Sub + + 'Closing (Overwrite-Check etc) + Private Sub FileBrowser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Dim x As Int32 + Dim path As String + Dim Ext As String + Dim HasExt As Boolean + HasExt = False + If Me.DialogResult = Windows.Forms.DialogResult.OK Then + If bBrowseFolder Then + path = Trim(Me.TextBoxPath.Text) + 'If empty path: use the Current-folder(MyFolder) + If path = "" Then + path = MyFolder + Else + If Microsoft.VisualBasic.Mid(path, 2, 1) <> ":" Then path = MyFolder & path + End If + If Not IO.Directory.Exists(path) Then + MsgBox("Directory " & path & " does not exist!", MsgBoxStyle.Critical) + e.Cancel = True + Exit Sub + End If + If Microsoft.VisualBasic.Right(path, 1) <> "\" Then path &= "\" + ReDim MyFiles(0) + MyFiles(0) = path + Else + 'Stop if empty path + If Trim(Me.TextBoxPath.Text) = "" Then + e.Cancel = True + Exit Sub + End If + LastExt = Trim(Me.ComboBoxExt.Text) + 'Assume Files in array + If Microsoft.VisualBasic.Left(Me.TextBoxPath.Text, 1) = "<" And Me.ListViewFiles.SelectedItems.Count > 0 Then + 'Multiple files selected + ReDim MyFiles(Me.ListViewFiles.SelectedItems.Count - 1) + x = -1 + For Each lv0 As ListViewItem In Me.ListViewFiles.Items + If lv0.Selected Then + x += 1 + MyFiles(x) = MyFolder & lv0.SubItems(0).Text + End If + Next + bMultiFiles = True + Else + 'Single File + path = Trim(Me.TextBoxPath.Text) + 'Primary extension (eg for bForceExt) + Ext = Trim(Me.ComboBoxExt.Text.Split(",")(0)) + 'If file without path then append path + If Microsoft.VisualBasic.Mid(path, 2, 1) <> ":" Then path = MyFolder & path + 'If instead of File a Folder is entered: Switch to Folder and Abort + If IO.Directory.Exists(path) Then + SetFolder(path) + e.Cancel = True + Exit Sub + End If + 'Force Extension + If bForceExt Then + If UCase(IO.Path.GetExtension(path)) <> "." & UCase(Ext) Then path &= "." & Ext + HasExt = True + Else + 'Check whether specified a File with Ext + HasExt = (Microsoft.VisualBasic.Len(IO.Path.GetExtension(path)) > 1) + End If + 'If File without Extension (after bForceExt question) and it does not exist, then add primary Extension + If Not HasExt Then + If Ext <> "*" And Ext <> "" Then + If Not IO.File.Exists(path) Then path &= "." & Ext + End If + End If + 'Check that File exists + If IO.File.Exists(path) Then + 'Yes: when bOverwriteCheck, check for Overwrite + If bOverwriteCheck Then + If MsgBox("Overwrite " & path & " ?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then + e.Cancel = True + Exit Sub + End If + End If + Else + 'No: abort if bFileMustExist + If bFileMustExist Then + MsgBox("The file " & path & " does not exist!", MsgBoxStyle.Critical) + e.Cancel = True + Exit Sub + End If + End If + 'Define MyFiles + ReDim MyFiles(0) + MyFiles(0) = path + bMultiFiles = False + End If + End If + End If + End Sub + + 'Browse - Custom Dialog + Public Function Browse(ByVal path As String, ByVal FileMustExist As Boolean, ByVal OverwriteCheck As Boolean, ByVal ExtMode As tFbExtMode, ByVal MultiFile As Boolean, ByVal Ext As String, ByVal Title As String) As Boolean + Dim x As Int16 + + If Not Initialized Then Init() + + 'Load Folder History ContextMenu + For x = 0 To 9 + Me.ContextMenuHisFolder.Items(x).Text = FB_FolderHistory(x) + Next + For x = 10 To 19 + Me.ContextMenuHisFolder.Items(x + 1).Text = FB_FolderHistory(x) + Next + + 'Options + bOverwriteCheck = OverwriteCheck + bFileMustExist = FileMustExist + bForceExt = (ExtMode = tFbExtMode.ForceExt) + + 'Form Config + Me.ListViewFiles.MultiSelect = MultiFile + Me.ButtonAll.Visible = MultiFile + Me.Text = Title + + 'Ext-Combobox + Me.ComboBoxExt.Items.Clear() + If NoExt Then + Me.ComboBoxExt.Items.Add("*") + Me.ComboBoxExt.SelectedIndex = 0 + Else + Select Case ExtMode + Case tFbExtMode.ForceExt + If Ext = "" Then Ext = ExtListSingle(0).ToString + Me.ComboBoxExt.Items.AddRange(ExtListSingle.ToArray) + Me.ComboBoxExt.Text = Ext + Me.ComboBoxExt.Enabled = False + Case tFbExtMode.MultiExt, tFbExtMode.SingleExt + If ExtMode = tFbExtMode.MultiExt Then + Me.ComboBoxExt.Items.AddRange(ExtListMulti.ToArray) + Else + Me.ComboBoxExt.Items.AddRange(ExtListSingle.ToArray) + End If + If Ext <> "" Then + Me.ComboBoxExt.Text = Ext + Else + Me.ComboBoxExt.Text = LastExt + End If + Me.ComboBoxExt.Enabled = True + End Select + End If + + + 'Define Path + ' If no path is specified: Last folder, no file name + If path = "" Then path = FB_FolderHistory(0) + + ' If path-length too small (Path is invalid): Last File + If path.Length < 2 Then path = LastFile + + 'Open Folder - If no folder in the path: Last folder + If fPATH(path) = "" Then + 'If given a file without path + If Trim(FB_FolderHistory(0)) = "" Then + SetFolder("C:\") + Else + SetFolder(FB_FolderHistory(0)) + End If + Else + '...Otherwise: + SetFolder(fPATH(path)) + End If + If bBrowseFolder Then + FolderUp() + Me.TextBoxPath.Text = path + Else + Me.TextBoxPath.Text = IO.Path.GetFileName(path) + End If + + 'Show form ------------------------------------------------ ---- + Me.ShowDialog() + If Me.DialogResult = Windows.Forms.DialogResult.OK Then + 'File / Folder History + If bMultiFiles Then + LastFile = MyFolder + UpdateHisFolder(MyFolder) + Else + LastFile = MyFiles(0) + UpdateHisFolder(fPATH(LastFile)) + If Not bBrowseFolder Then UpdateHisFile(LastFile) + End If + 'Update Global History Folder + For x = 0 To 9 + FB_FolderHistory(x) = Me.ContextMenuHisFolder.Items(x).Text + Next + For x = 10 To 19 + FB_FolderHistory(x) = Me.ContextMenuHisFolder.Items(x + 1).Text + Next + Return True + Else + Return False + End If + End Function + + 'Close and save File / Folder History + Public Sub SaveAndClose() + Dim f As System.IO.StreamWriter + Dim x As Int16 + 'Folder History + If FB_Init Then + Try + f = My.Computer.FileSystem.OpenTextFileWriter(FB_FilHisDir & "Directories.txt", False, System.Text.Encoding.UTF8) + For x = 0 To 19 + f.WriteLine(FB_FolderHistory(x)) + Next + f.Close() + f.Dispose() + Catch ex As Exception + End Try + FB_Init = False + End If + 'File History + If Initialized And Not bLightMode Then + If Not bBrowseFolder Then + Try + f = My.Computer.FileSystem.OpenTextFileWriter(FB_FilHisDir & MyID & ".txt", False, System.Text.Encoding.UTF8) + For x = 0 To 9 + f.WriteLine(Me.ContextMenuHisFile.Items(x).Text) + Next + f.Close() + f.Dispose() + Catch ex As Exception + End Try + End If + Initialized = False + End If + f = Nothing + 'Close + Me.Close() + End Sub + + 'Switching to FolderBrowser + Public Sub SetFolderBrowser() + If Initialized Then Exit Sub + bBrowseFolder = True + Me.Width = 500 + Me.ListViewFiles.Enabled = False + Me.ButtonHisFile.Enabled = False + Me.TextBoxSearchFile.Enabled = False + Me.SplitContainer1.Panel2Collapsed = True + Me.Text = "Directory Browser" + End Sub + + 'Initialize + Private Sub Init() + Dim x As Int16 + Dim line As String + Dim f As System.IO.StreamReader + + UpdateLock = True + + 'Initialization for Global File Browser + If Not FB_Init Then GlobalInit() + + 'Load Drive ComboBox + For x = 0 To UBound(FB_Drives) + Me.ComboBoxDrive.Items.Add(FB_Drives(x)) + Next + + 'FolderHistory ContextMenu + Me.ContextMenuHisFolder.Items.Clear() + For x = 0 To 9 + Me.ContextMenuHisFolder.Items.Add("") + Next + Me.ContextMenuHisFolder.Items.Add("-") + For x = 10 To 19 + Me.ContextMenuHisFolder.Items.Add("") + Next + Me.ContextMenuHisFolder.Items.Add("-") + Me.ContextMenuHisFolder.Items.Add(FavText) + + 'FileHistory ContextMenu + If bBrowseFolder Then + LastFile = FB_FolderHistory(0) + ElseIf Not bLightMode Then + For x = 0 To 9 + Me.ContextMenuHisFile.Items.Add("") + Next + If IO.File.Exists(FB_FilHisDir & MyID & ".txt") Then + f = New System.IO.StreamReader(FB_FilHisDir & MyID & ".txt") + x = -1 + Do While Not f.EndOfStream And x < 9 + x += 1 + line = f.ReadLine + Me.ContextMenuHisFile.Items(x).Text = line + If x = 0 Then LastFile = line + Loop + f.Close() + f.Dispose() + End If + End If + + 'Extension-ComboBox + If Not NoExt Then + ExtListSingle = New ArrayList + ExtListMulti = New ArrayList + For x = 0 To UBound(MyExt) + ExtListMulti.Add(MyExt(x)) + For Each line In MyExt(x).Split(",") + ExtListSingle.Add(Trim(line)) + Next + Next + ExtListMulti.Add("*") + ExtListSingle.Add("*") + End If + + Initialized = True + f = Nothing + UpdateLock = False + End Sub + + Private Sub GlobalInit() + Dim drive As String + Dim x As Int16 + + Dim f As System.IO.StreamReader + + 'Create Drive List + ReDim FB_Drives(UBound(IO.Directory.GetLogicalDrives())) + x = -1 + For Each drive In IO.Directory.GetLogicalDrives() + x += 1 + FB_Drives(x) = Microsoft.VisualBasic.Left(drive, 2) + Next + + 'Read Folder History + For x = 0 To 19 + FB_FolderHistory(x) = EmptyText + Next + If IO.File.Exists(FB_FilHisDir & "Directories.txt") Then + f = New System.IO.StreamReader(FB_FilHisDir & "Directories.txt") + x = -1 + Do While Not f.EndOfStream And x < 19 + x += 1 + FB_FolderHistory(x) = f.ReadLine() + Loop + f.Dispose() + f.Close() + End If + + FB_Init = True + + f = Nothing + End Sub + + 'ComboBoxDrive_SelectedIndexChanged + Private Sub ComboBoxDrive_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBoxDrive.SelectedIndexChanged + If Not UpdateLock Then SetFolder(Me.ComboBoxDrive.SelectedItem.ToString) + End Sub + + + 'ButtonFolderBack_Click + Private Sub ButtonFolderBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonFolderBack.Click + FolderUp() + End Sub + + 'TextBoxPath_KeyDown (ENTER) + Private Sub TextBoxPath_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxPath.KeyDown + Dim path As String + If e.KeyCode = Keys.Enter Then + path = Me.TextBoxPath.Text + If IO.Directory.Exists(path) Then + If bBrowseFolder Then + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + Else + SetFolder(path) + End If + Else + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End If + End If + End Sub + + 'ListViewFolder_SelectedIndexChanged + Private Sub ListViewFolder_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListViewFolder.SelectedIndexChanged + If bBrowseFolder Then + UpdateLock = True + If Me.ListViewFolder.SelectedItems.Count > 0 Then + Me.TextBoxPath.Text = Me.ListViewFolder.SelectedItems.Item(0).Text & "\" + End If + UpdateLock = False + End If + End Sub + + 'ListViewFolder_MouseDoubleClick + Private Sub ListViewFolder_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListViewFolder.MouseDoubleClick + If Me.ListViewFolder.SelectedItems.Count = 0 Then Exit Sub + SetFolder(MyFolder & Me.ListViewFolder.SelectedItems.Item(0).Text) + End Sub + + 'ListViewFolder_KeyDown + Private Sub ListViewFolder_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListViewFolder.KeyDown + If e.KeyCode = Keys.Enter Then + If Me.ListViewFolder.SelectedItems.Count = 0 Then Exit Sub + SetFolder(MyFolder & Me.ListViewFolder.SelectedItems.Item(0).Text) + End If + End Sub + + ''<SORTER> + ''Private Sub ListViewFiles_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListViewFiles.ColumnClick + '' ' Determine if the clicked column is already the column that is + '' ' being sorted. + '' If (e.Column = lvwColumnSorter.SortColumn) Then + '' ' Reverse the current sort direction for this column. + '' If (lvwColumnSorter.Order = SortOrder.Ascending) Then + '' lvwColumnSorter.Order = SortOrder.Descending + '' Else + '' lvwColumnSorter.Order = SortOrder.Ascending + '' End If + '' Else + '' ' Set the column number that is to be sorted; default to ascending. + '' lvwColumnSorter.SortColumn = e.Column + '' lvwColumnSorter.Order = SortOrder.Ascending + '' End If + + '' ' Perform the sort with these new sort options. + '' Me.ListViewFiles.Sort() + + ''End Sub + + 'ListViewFiles_SelectedIndexChanged + Private Sub ListViewFiles_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListViewFiles.SelectedIndexChanged + UpdateLock = True + If Me.ListViewFiles.SelectedItems.Count = 0 Then + Me.TextBoxPath.Text = "" + Else + If Me.ListViewFiles.SelectedItems.Count > 1 Then + Me.TextBoxPath.Text = "<" & Me.ListViewFiles.SelectedItems.Count & " Files selected>" + Else + Me.TextBoxPath.Text = Me.ListViewFiles.SelectedItems.Item(0).Text + Me.TextBoxPath.SelectionStart = Me.TextBoxPath.Text.Length + End If + End If + UpdateLock = False + End Sub + + 'ListViewFiles_MouseDoubleClick + Private Sub ListViewFiles_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListViewFiles.MouseDoubleClick + If Me.ListViewFiles.SelectedItems.Count = 0 Then Exit Sub + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 'ListViewFiles_KeyDown + Private Sub ListViewFiles_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListViewFiles.KeyDown + If e.KeyCode = Keys.Enter Then + If Me.ListViewFiles.SelectedItems.Count = 0 Then Exit Sub + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + End If + End Sub + + 'TextBoxSearchFolder_KeyDown + Private Sub TextBoxSearchFolder_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxSearchFolder.KeyDown + Dim ItemCount As Int32 + Dim SelIndex As Int32 + Dim NoItem As Boolean + ItemCount = Me.ListViewFolder.Items.Count + NoItem = (ItemCount = 0) + If Not NoItem Then + If Me.ListViewFolder.SelectedItems.Count = 0 Then + SelIndex = -1 + Else + SelIndex = Me.ListViewFolder.SelectedIndices(0) + End If + End If + Select Case e.KeyCode + Case Keys.Enter + If NoItem Then Exit Sub + If Me.ListViewFolder.SelectedItems.Count = 0 Then Me.ListViewFolder.SelectedIndices.Add(0) + SetFolder(MyFolder & Me.ListViewFolder.SelectedItems.Item(0).Text) + Case Keys.Up + If Not NoItem Then + If SelIndex < 1 Then + SelIndex = 1 + Else + Me.ListViewFolder.Items(SelIndex).Selected = False + End If + Me.ListViewFolder.Items(SelIndex - 1).Selected = True + Me.ListViewFolder.Items(SelIndex - 1).EnsureVisible() + End If + Case Keys.Down + If Not NoItem And SelIndex < ItemCount - 1 Then + If Not SelIndex = -1 Then Me.ListViewFolder.Items(SelIndex).Selected = False + Me.ListViewFolder.Items(SelIndex + 1).Selected = True + Me.ListViewFolder.Items(SelIndex + 1).EnsureVisible() + End If + Case Keys.Back + If Me.TextBoxSearchFolder.Text = "" Then FolderUp() + End Select + End Sub + + 'TextBoxSearchFolder_TextChanged + Private Sub TextBoxSearchFolder_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxSearchFolder.TextChanged + If Not UpdateLock Then LoadListFolder() + End Sub + + 'TextBoxSearchFile_KeyDown + Private Sub TextBoxSearchFile_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBoxSearchFile.KeyDown + Dim ItemCount As Int32 + Dim SelIndex As Int32 + Dim NoItem As Boolean + ItemCount = Me.ListViewFiles.Items.Count + NoItem = (ItemCount = 0) + If Not NoItem Then + If Me.ListViewFiles.SelectedItems.Count = 0 Then + SelIndex = -1 + Else + SelIndex = Me.ListViewFiles.SelectedIndices(0) + End If + End If + Select Case e.KeyCode + Case Keys.Enter + If NoItem Then Exit Sub + If Me.ListViewFiles.SelectedItems.Count = 0 Then Me.ListViewFiles.SelectedIndices.Add(0) + Me.DialogResult = Windows.Forms.DialogResult.OK + Me.Close() + Case Keys.Up + If Not NoItem Then + If SelIndex < 1 Then + SelIndex = 1 + Else + Me.ListViewFiles.Items(SelIndex).Selected = False + End If + Me.ListViewFiles.Items(SelIndex - 1).Selected = True + Me.ListViewFiles.Items(SelIndex - 1).EnsureVisible() + End If + Case Keys.Down + If Not NoItem And SelIndex < ItemCount - 1 Then + If Not SelIndex = -1 Then Me.ListViewFiles.Items(SelIndex).Selected = False + Me.ListViewFiles.Items(SelIndex + 1).Selected = True + Me.ListViewFiles.Items(SelIndex + 1).EnsureVisible() + End If + End Select + End Sub + + 'TextBoxSearchFile_TextChanged + Private Sub TextBoxSearchFile_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBoxSearchFile.TextChanged + If Not UpdateLock Then LoadListFiles() + End Sub + + 'ComboBoxExt_TextChanged + Private Sub ComboBoxExt_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBoxExt.TextChanged + If Not UpdateLock Then LoadListFiles() + End Sub + + 'ButtonHisFolder_Click + Private Sub ButtonHisFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHisFolder.Click + Me.ContextMenuHisFolder.Show(Control.MousePosition) + End Sub + + 'ButtonHisFile_Click + Private Sub ButtonHisFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonHisFile.Click + Me.ContextMenuHisFile.Show(Control.MousePosition) + End Sub + + 'Select All - Click + Private Sub ButtonAll_Click(sender As System.Object, e As System.EventArgs) Handles ButtonAll.Click + Dim i As Integer + Me.ListViewFiles.BeginUpdate() + For i = 0 To Me.ListViewFiles.Items.Count - 1 + Me.ListViewFiles.Items(i).Selected = True + Next + Me.ListViewFiles.EndUpdate() + End Sub + + 'ContextMenuHisFile_ItemClicked + Private Sub ContextMenuHisFile_ItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ContextMenuHisFile.ItemClicked + Dim path As String + + path = e.ClickedItem.Text.ToString + + If path = EmptyText Then Exit Sub + + SetFolder(fPATH(path)) + + Me.TextBoxPath.Text = IO.Path.GetFileName(path) + + End Sub + + 'ContextMenuHisFolder_ItemClicked + Private Sub ContextMenuHisFolder_ItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ContextMenuHisFolder.ItemClicked + Dim path As String + Dim favdlog As FB_FavDlog + Dim x As Integer + + path = e.ClickedItem.Text.ToString + + If path = EmptyText Then Exit Sub + + If path = FavText Then + favdlog = New FB_FavDlog + If favdlog.ShowDialog = Windows.Forms.DialogResult.OK Then + For x = 10 To 19 + path = favdlog.ListBox1.Items(x - 10) + If path = NoFavString Then + FB_FolderHistory(x) = EmptyText + Else + FB_FolderHistory(x) = path + End If + Me.ContextMenuHisFolder.Items(x + 1).Text = FB_FolderHistory(x) + Next + End If + Else + SetFolder(path) + End If + + End Sub + + 'TextBoxCurrent_MouseClick + Private Sub TextBoxCurrent_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBoxCurrent.MouseClick + Dim x As Int32 + Dim x1 As Int32 + Dim path As String + Dim newpath As String + newpath = "" + x = Me.TextBoxCurrent.SelectionStart + path = Me.TextBoxCurrent.Text + x1 = path.Length + If x = x1 Then Exit Sub + If x < 4 Then + SetFolder(Microsoft.VisualBasic.Left(path, 2)) + Exit Sub + End If + Do While x1 > x + newpath = path + 'path = Microsoft.VisualBasic.Left(path, x1 - 1) + path = Microsoft.VisualBasic.Left(path, path.LastIndexOf("\")) + x1 = path.Length + Loop + SetFolder(newpath) + End Sub + + 'ButtonDesktop_Click + Private Sub ButtonDesktop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDesktop.Click + SetFolder(FileIO.SpecialDirectories.Desktop.ToString) + End Sub + + 'Context Menu Update + Private Sub UpdateHisFile(ByVal path As String) + Dim x As Int16 + Dim y As Int16 + If bLightMode Then Exit Sub + 'Sort Context Menu + For x = 0 To 8 + If UCase(Me.ContextMenuHisFile.Items(x).Text.ToString) = UCase(path) Then Exit For + Next + For y = x To 1 Step -1 + Me.ContextMenuHisFile.Items(y).Text = Me.ContextMenuHisFile.Items(y - 1).Text + Next + Me.ContextMenuHisFile.Items(0).Text = path + End Sub + Private Sub UpdateHisFolder(ByVal path As String) + Dim x As Int16 + Dim y As Int16 + + 'Sort Context Menu + For x = 0 To 8 + If UCase(Me.ContextMenuHisFolder.Items(x).Text.ToString) = UCase(path) Then Exit For + Next + + For y = x To 1 Step -1 + Me.ContextMenuHisFolder.Items(y).Text = Me.ContextMenuHisFolder.Items(y - 1).Text + Next + + Me.ContextMenuHisFolder.Items(0).Text = path + + End Sub + + 'Manuelles History-Update + Public Sub UpdateHistory(ByVal path As String) + Dim x As Int16 + Dim y As Int16 + 'Init + If Not Initialized Then Init() + 'Files + UpdateHisFile(path) + 'Folder + path = fPATH(path) + For x = 0 To 8 + If UCase(FB_FolderHistory(x)) = UCase(path) Then Exit For + Next + For y = x To 1 Step -1 + FB_FolderHistory(y) = FB_FolderHistory(y - 1) + Next + FB_FolderHistory(0) = path + End Sub + + 'Change folder + Private Sub SetFolder(ByVal Path As String) + + 'Abort if no drive specified + If Microsoft.VisualBasic.Mid(Path, 2, 1) <> ":" Then Exit Sub + + UpdateLock = True + + 'Delete Search-fields + Me.TextBoxSearchFile.Text = "" + Me.TextBoxSearchFolder.Text = "" + + 'Set Drive + If MyDrive <> Microsoft.VisualBasic.Left(Path, 2) Then + MyDrive = UCase(Microsoft.VisualBasic.Left(Path, 2)) + Me.ComboBoxDrive.SelectedItem = MyDrive + End If + + 'Set Folder + MyFolder = Path + If Microsoft.VisualBasic.Right(MyFolder, 1) <> "\" Then MyFolder &= "\" + LoadListFolder() + LoadListFiles() + + If bBrowseFolder Then Me.TextBoxPath.Text = "" + + Me.TextBoxCurrent.Text = MyFolder + + 'Me.TextBoxPath.SelectionStart = Me.TextBoxPath.Text.Length + UpdateLock = False + + End Sub + + 'Folder one level up + Private Sub FolderUp() + Dim path As String + Dim x As Int32 + If MyFolder <> "" Then + path = Microsoft.VisualBasic.Left(MyFolder, MyFolder.Length - 1) + x = path.LastIndexOf("\") + If x > 0 Then SetFolder(Microsoft.VisualBasic.Left(path, x)) + End If + End Sub + + 'Load Folder-List + Private Sub LoadListFolder() + Dim SearchPat As String + 'Delete Folder-List + Me.ListViewFolder.Items.Clear() + SearchPat = "*" & Me.TextBoxSearchFolder.Text & "*" + Try + 'Add Folder + Dim di As New IO.DirectoryInfo(MyFolder) + Dim aryFi As IO.DirectoryInfo() + Dim fi As IO.DirectoryInfo + aryFi = di.GetDirectories(SearchPat) + For Each fi In aryFi + Me.ListViewFolder.Items.Add(fi.ToString) + Next + Catch ex As Exception + Me.ListViewFolder.Items.Add("<ERROR: " & ex.Message.ToString & ">") + End Try + End Sub + + 'Load File-list + Private Sub LoadListFiles() + Dim x As Int32 + Dim SearchPat As String + Dim SearchFile As String + Dim SearchExt As String + Dim ExtStr As String() + + 'Abort if bBrowseFolder + If bBrowseFolder Then Exit Sub + + Me.LabelFileAnz.Text = "0 Files" + 'Define Extension-filter + If Trim(Me.ComboBoxExt.Text.ToString) = "" Then + ExtStr = New String() {"*"} + Else + ExtStr = Me.ComboBoxExt.Text.ToString.Split(",") + End If + + 'Delete File-List + Me.ListViewFiles.Items.Clear() + + SearchFile = Me.TextBoxSearchFile.Text + + Me.ListViewFiles.BeginUpdate() + Try + 'Add Folder + Dim di As New IO.DirectoryInfo(MyFolder) + Dim aryFi As IO.FileInfo() + Dim fi As IO.FileInfo + x = -1 + For Each SearchExt In ExtStr + SearchPat = "*" & Trim(SearchFile) & "*." & Trim(SearchExt) + aryFi = di.GetFiles(SearchPat) + For Each fi In aryFi + x += 1 + Me.ListViewFiles.Items.Add(fi.ToString) + Next + Next + If x = 0 Then + Me.LabelFileAnz.Text = "1 File" + Else + Me.LabelFileAnz.Text = x + 1 & " Files" + End If + Catch ex As Exception + Me.ListViewFiles.Items.Add("<ERROR: " & ex.Message.ToString & ">") + End Try + + Me.ListViewFiles.EndUpdate() + + End Sub + + 'Rename File + Private Sub RenameFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RenameFileToolStripMenuItem.Click + Dim file0 As String + Dim file As String + If Me.ListViewFiles.SelectedItems.Count = 1 Then + file0 = Me.ListViewFiles.SelectedItems(0).Text + file = file0 +lb1: + file = InputBox("New Filename", "Rename " & file0, file) + If file <> "" Then + If IO.File.Exists(MyFolder & file) Then + MsgBox("File " & file & " already exists!") + GoTo lb1 + End If + Try + My.Computer.FileSystem.RenameFile(MyFolder & file0, file) + LoadListFiles() + Catch ex As Exception + MsgBox("Cannot rename " & file0 & "!") + End Try + End If + End If + End Sub + + 'Delete File + Private Sub DeleteFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteFileToolStripMenuItem.Click + Dim x As Int32 + Dim c As Int32 + c = Me.ListViewFiles.SelectedItems.Count + If c > 0 Then + If c = 1 Then + If MsgBox("Delete " & MyFolder & Me.ListViewFiles.SelectedItems(0).Text & "?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub + Else + If MsgBox("Delete " & c & " files?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub + End If + For x = 0 To c - 1 + Try + IO.File.Delete(MyFolder & Me.ListViewFiles.SelectedItems(x).Text) + Catch ex As Exception + End Try + Next + LoadListFiles() + End If + End Sub + + 'Neuer Ordner + Private Sub ButtonNewDir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonNewDir.Click + Dim f As String + f = "New Folder" +lb10: + f = InputBox("Create New Folder", "New Folder", f) + If f <> "" Then + If IO.Directory.Exists(MyFolder & f) Then + MsgBox("Folder " & MyFolder & f & " already exists!") + GoTo lb10 + End If + Try + IO.Directory.CreateDirectory(MyFolder & f) + SetFolder(MyFolder & f) + Catch ex As Exception + MsgBox("Cannot create " & f & "!") + End Try + End If + End Sub + + ''Private Function fTimeString(ByVal T As Date) As String + '' Return T.Year & "-" & T.Month.ToString("00") & "-" & T.Day.ToString("00") & " " & T.Hour.ToString("00") & ":" & T.Minute.ToString("00") & ":" & T.Second.ToString("00") + ''End Function + + + Private Function fPATH(ByVal Pfad As String) As String + Dim x As Int16 + x = Pfad.LastIndexOf("\") + If x = -1 Then + Return Microsoft.VisualBasic.Left(Pfad, 0) + Else + Return Microsoft.VisualBasic.Left(Pfad, x + 1) + End If + End Function + + Public ReadOnly Property Folder() As String + Get + Return MyFolder + End Get + End Property + + Public ReadOnly Property Files() As String() + Get + Return MyFiles + End Get + End Property + + Public Property ID() As String + Get + Return MyID + End Get + Set(ByVal value As String) + MyID = value + End Set + End Property + + Public Property Extensions() As String() + Get + Return MyExt + End Get + Set(ByVal value As String()) + MyExt = value + LastExt = MyExt(0) + NoExt = False + End Set + End Property + + +End Class diff --git a/VECTO/File Browser/FB_FavDlog.designer.vb b/VECTO/File Browser/FB_FavDlog.designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..f411d717e77a6027dc39f74e77fbc8943ce6d32f --- /dev/null +++ b/VECTO/File Browser/FB_FavDlog.designer.vb @@ -0,0 +1,122 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class FB_FavDlog + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.ListBox1 = New System.Windows.Forms.ListBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(277, 155) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'ListBox1 + ' + Me.ListBox1.FormattingEnabled = True + Me.ListBox1.Location = New System.Drawing.Point(12, 12) + Me.ListBox1.Name = "ListBox1" + Me.ListBox1.Size = New System.Drawing.Size(411, 134) + Me.ListBox1.TabIndex = 1 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 163) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(119, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "Doubleclick Item to Edit" + ' + 'FB_FavDlog + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(435, 196) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.ListBox1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "FB_FavDlog" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Edit Favorites" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents ListBox1 As System.Windows.Forms.ListBox + Friend WithEvents Label1 As System.Windows.Forms.Label + +End Class diff --git a/VECTO/File Browser/FB_FavDlog.resx b/VECTO/File Browser/FB_FavDlog.resx new file mode 100644 index 0000000000000000000000000000000000000000..7080a7d118e8cd7ec668e9bb0d8e90767e0c7a3c --- /dev/null +++ b/VECTO/File Browser/FB_FavDlog.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/File Browser/FB_FavDlog.vb b/VECTO/File Browser/FB_FavDlog.vb new file mode 100644 index 0000000000000000000000000000000000000000..a153ed545ccaac011a52ebbc7df50987ef43da1e --- /dev/null +++ b/VECTO/File Browser/FB_FavDlog.vb @@ -0,0 +1,67 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms + +''' <summary> +''' Sub-dialog for File Browser. Entirely controlled by cFilebrowser class (via FB_Dialog). +''' </summary> +''' <remarks></remarks> +Public Class FB_FavDlog + + Private Const NoFavString As String = "<undefined>" + Private Const EmptyText As String = " " + + Private Sub FB_FavDlog_Load(sender As Object, e As System.EventArgs) Handles Me.Load + Dim x As Integer + Dim txt As String + For x = 10 To 19 + txt = FB_FolderHistory(x) + If txt = EmptyText Then + Me.ListBox1.Items.Add(NoFavString) + Else + Me.ListBox1.Items.Add(txt) + End If + Next + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 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 + + Private Sub ListBox1_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDoubleClick + Dim i As Integer + Dim txt As String + Dim fb As cFileBrowser + + i = Me.ListBox1.SelectedIndex + + txt = Me.ListBox1.Items(i).ToString + + If txt = NoFavString Then txt = "" + + fb = New cFileBrowser("DirBr", True, True) + + If fb.OpenDialog(txt) Then + txt = fb.Files(0) + Me.ListBox1.Items.Insert(i, txt) + Me.ListBox1.Items.RemoveAt(i + 1) + End If + + End Sub + + +End Class diff --git a/VECTO/File Browser/FB_Global.vb b/VECTO/File Browser/FB_Global.vb new file mode 100644 index 0000000000000000000000000000000000000000..fccdf4f55871b5fcac33e88be2da14dad0c8cabc --- /dev/null +++ b/VECTO/File Browser/FB_Global.vb @@ -0,0 +1,46 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Global File Brower properties and cFilebrowser instances. +''' </summary> +''' <remarks></remarks> +Module FB_Global + + Public FB_FolderHistory(19) As String + Public FB_Drives() As String + Public FB_Init As Boolean + Public FB_FilHisDir As String + '----------------------------- + Public fbFolder As cFileBrowser + Public fbVECTO As cFileBrowser + Public fbFileLists As cFileBrowser + Public fbVEH As cFileBrowser + Public fbDRI As cFileBrowser + Public fbMAP As cFileBrowser + Public fbFLD As cFileBrowser + + Public fbENG As cFileBrowser + Public fbGBX As cFileBrowser + Public fbACC As cFileBrowser + Public fbAUX As cFileBrowser + + Public fbGBS As cFileBrowser + Public fbTLM As cFileBrowser + Public fbRLM As cFileBrowser + Public fbTCC As cFileBrowser + Public fbCDx As cFileBrowser + + Public fbVMOD As cFileBrowser + + +End Module + diff --git a/VECTO/File Browser/cFileBrowser.vb b/VECTO/File Browser/cFileBrowser.vb new file mode 100644 index 0000000000000000000000000000000000000000..c6122de067f8d9cb68295139a39f1cb12a2afb58 --- /dev/null +++ b/VECTO/File Browser/cFileBrowser.vb @@ -0,0 +1,161 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections + +''' <summary> +''' File Browser for Open/Save File dialogs and Folder Browser. Features File History and Favorite Folders. +''' </summary> +''' <remarks> +''' Usage: +''' 1. Create new instance, preferably in FB_Global, e.g. fbTXT = New cFileBrowser("txt") +''' 2. Define extensions, e.g. fbTXT.Extensions = New String() {"txt","log"} +''' 3. Use OpenDialog, SaveDialog, etc. +''' 4. Call Close method when closing application to write file history, e.g. fbTXT.Close +''' File history is unique for each ID. Folder history is global. +''' </remarks> +Public Class cFileBrowser + + Private Initialized As Boolean + Private MyID As String + Private MyExt As String() + Private Dlog As FB_Dialog + Private NoExt As Boolean + Private bFolderBrowser As Boolean + Private bLightMode As Boolean + + ''' <summary> + ''' New cFileBrowser instance + ''' </summary> + ''' <param name="ID">Needed to save the file history when not using LightMode.</param> + ''' <param name="FolderBrowser">Browse folders instead of files.</param> + ''' <param name="LightMode">If enabled file history is not saved.</param> + ''' <remarks></remarks> + Public Sub New(ByVal ID As String, Optional ByVal FolderBrowser As Boolean = False, Optional ByVal LightMode As Boolean = False) + Initialized = False + MyID = ID + NoExt = True + bFolderBrowser = FolderBrowser + bLightMode = LightMode + End Sub + + ''' <summary> + ''' Opens dialog for OPENING files. Selected file must exist. Returns False if cancelled by user, else True. + ''' </summary> + ''' <param name="path">Initial selected file. If empty the last selected file is used. If file without directoy the last directory will be used.</param> + ''' <param name="MultiFile">Allow selecting multiple files.</param> + ''' <param name="Ext">Set extension. If not defined the first predefined extension is used.</param> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function OpenDialog(ByVal path As String, Optional ByVal MultiFile As Boolean = False, Optional ByVal Ext As String = "") As Boolean + Return CustomDialog(path, True, False, tFbExtMode.MultiExt, MultiFile, Ext, "Open") + End Function + + ''' <summary> + ''' Opens dialog for SAVING files. If file already exists user will be asked to overwrite. Returns False if cancelled by user, else True. + ''' </summary> + ''' <param name="path">Initial selected file. If empty the last selected file is used. If file without directoy the last directory will be used.</param> + ''' <param name="ForceExt">Force predefined file extension.</param> + ''' <param name="Ext">Set extension. If not defined the first predefined extension is used.</param> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function SaveDialog(ByVal path As String, Optional ByVal ForceExt As Boolean = True, Optional ByVal Ext As String = "") As Boolean + Dim x As tFbExtMode + If ForceExt Then + x = tFbExtMode.ForceExt + Else + x = tFbExtMode.SingleExt + End If + Return CustomDialog(path, False, True, x, False, Ext, "Save As") + End Function + + ''' <summary> + ''' Custom open/save dialog. Returns False if cancelled by user, else True. + ''' </summary> + ''' <param name="path">Initial selected file. If empty the last selected file is used. If file without directoy the last directory will be used.</param> + ''' <param name="FileMustExist">Selected file must exist.</param> + ''' <param name="OverwriteCheck">If file already exists user will be asked to overwrite.</param> + ''' <param name="ExtMode">ForceExt= First predefined extension (or Ext parameter) will be forced (Default for SaveDialog), MultiExt= All files with predefined extensions are shown (Default for OpenDialog), SingleExt= All files with the first predefined extension will be shown.</param> + ''' <param name="MultiFile">Allow to select multiple files.</param> + ''' <param name="Ext">Set extension. If not defined the first predefined extension is used.</param> + ''' <param name="Title">Dialog title.</param> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function CustomDialog(ByVal path As String, ByVal FileMustExist As Boolean, ByVal OverwriteCheck As Boolean, ByVal ExtMode As tFbExtMode, ByVal MultiFile As Boolean, ByVal Ext As String, Optional Title As String = "File Browser") As Boolean + If Not Initialized Then Init() + Return Dlog.Browse(path, FileMustExist, OverwriteCheck, ExtMode, MultiFile, Ext, Title) + End Function + + 'Manually update File History + ''' <summary> + ''' Add file to file history. + ''' </summary> + ''' <param name="Path">File to be added to file history.</param> + ''' <remarks></remarks> + Public Sub UpdateHistory(ByVal Path As String) + If Not Initialized Then Init() + Dlog.UpdateHistory(Path) + End Sub + + ''' <summary> + ''' Save file history (if not LightMode) and global folder history. + ''' </summary> + ''' <remarks></remarks> + Public Sub Close() + If Initialized Then + Dlog.SaveAndClose() + Initialized = False + End If + Dlog = Nothing + End Sub + + Private Sub Init() + Dlog = New FB_Dialog(bLightMode) + Dlog.ID = MyID + If Not NoExt Then Dlog.Extensions = MyExt + If bFolderBrowser Then Dlog.SetFolderBrowser() + Initialized = True + End Sub + + ''' <summary> + ''' Predefined file extensions. Must be set before Open/Save dialog is used for the first time. + ''' </summary> + ''' <value></value> + ''' <returns></returns> + ''' <remarks></remarks> + Public Property Extensions() As String() + Get + Return MyExt + End Get + Set(ByVal value As String()) + MyExt = value + NoExt = False + End Set + End Property + + ''' <summary> + ''' Selected file(s) oder folder (if FolderBrowser) + ''' </summary> + ''' <value></value> + ''' <returns></returns> + ''' <remarks></remarks> + Public ReadOnly Property Files() As String() + Get + If Initialized Then + Return Dlog.Files + Else + Return New String() {""} + End If + End Get + End Property + +End Class + + diff --git a/VECTO/GUI/F_AboutBox.Designer.vb b/VECTO/GUI/F_AboutBox.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..ffa79cf2201ec038865c117fdccefafd274392ac --- /dev/null +++ b/VECTO/GUI/F_AboutBox.Designer.vb @@ -0,0 +1,213 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_AboutBox + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.Label10 = New System.Windows.Forms.Label() + Me.LabelLic = New System.Windows.Forms.Label() + Me.LabelLicDate = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() + Me.LinkLabel2 = New System.Windows.Forms.LinkLabel() + Me.Label3 = New System.Windows.Forms.Label() + Me.PictureBoxJRC = New System.Windows.Forms.PictureBox() + Me.Panel1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label10.Location = New System.Drawing.Point(9, 250) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(75, 13) + Me.Label10.TabIndex = 11 + Me.Label10.Text = "License file:" + ' + 'LabelLic + ' + Me.LabelLic.AutoSize = True + Me.LabelLic.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelLic.Location = New System.Drawing.Point(3, 0) + Me.LabelLic.Name = "LabelLic" + Me.LabelLic.Size = New System.Drawing.Size(22, 13) + Me.LabelLic.TabIndex = 12 + Me.LabelLic.Text = "Lic" + ' + 'LabelLicDate + ' + Me.LabelLicDate.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.LabelLicDate.AutoSize = True + Me.LabelLicDate.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelLicDate.Location = New System.Drawing.Point(3, 26) + Me.LabelLicDate.Name = "LabelLicDate" + Me.LabelLicDate.Size = New System.Drawing.Size(12, 13) + Me.LabelLicDate.TabIndex = 13 + Me.LabelLicDate.Text = "-" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(9, 346) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(162, 13) + Me.Label2.TabIndex = 7 + Me.Label2.Text = "Developed on behalf of the" + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label8.Location = New System.Drawing.Point(24, 368) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(158, 39) + Me.Label8.TabIndex = 3 + Me.Label8.Text = "Joint Research Centre" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Sustainable Transport Unit" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "European Commission" + ' + 'Panel1 + ' + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.Panel1.Controls.Add(Me.LabelLic) + Me.Panel1.Controls.Add(Me.LabelLicDate) + Me.Panel1.Location = New System.Drawing.Point(12, 266) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(464, 52) + Me.Panel1.TabIndex = 16 + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_About + Me.PictureBox1.Location = New System.Drawing.Point(23, 12) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(447, 182) + Me.PictureBox1.TabIndex = 14 + Me.PictureBox1.TabStop = False + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(9, 436) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(105, 13) + Me.Label1.TabIndex = 7 + Me.Label1.Text = "Support Contact:" + ' + 'LinkLabel1 + ' + Me.LinkLabel1.AutoSize = True + Me.LinkLabel1.Location = New System.Drawing.Point(120, 436) + Me.LinkLabel1.Name = "LinkLabel1" + Me.LinkLabel1.Size = New System.Drawing.Size(122, 13) + Me.LinkLabel1.TabIndex = 17 + Me.LinkLabel1.TabStop = True + Me.LinkLabel1.Text = "vecto@jrc.ec.europa.eu" + ' + 'LinkLabel2 + ' + Me.LinkLabel2.AutoSize = True + Me.LinkLabel2.Font = New System.Drawing.Font("Verdana", 8.25!) + Me.LinkLabel2.Location = New System.Drawing.Point(20, 197) + Me.LinkLabel2.Name = "LinkLabel2" + Me.LinkLabel2.Size = New System.Drawing.Size(179, 13) + Me.LinkLabel2.TabIndex = 18 + Me.LinkLabel2.TabStop = True + Me.LinkLabel2.Text = "VECTO is licensed under EUPL" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Verdana", 8.25!) + Me.Label3.Location = New System.Drawing.Point(20, 213) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(194, 13) + Me.Label3.TabIndex = 19 + Me.Label3.Text = "Copyright: 2014 European Union" + ' + 'PictureBoxJRC + ' + Me.PictureBoxJRC.Cursor = System.Windows.Forms.Cursors.Hand + Me.PictureBoxJRC.Image = Global.VECTO.My.Resources.Resources.JRC_About + Me.PictureBoxJRC.Location = New System.Drawing.Point(216, 353) + Me.PictureBoxJRC.Name = "PictureBoxJRC" + Me.PictureBoxJRC.Size = New System.Drawing.Size(260, 54) + Me.PictureBoxJRC.TabIndex = 15 + Me.PictureBoxJRC.TabStop = False + ' + 'F_AboutBox + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(491, 474) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.LinkLabel2) + Me.Controls.Add(Me.LinkLabel1) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.PictureBoxJRC) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.Label10) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.Label8) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.Name = "F_AboutBox" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "About VECTO" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents LabelLic As System.Windows.Forms.Label + Friend WithEvents LabelLicDate As System.Windows.Forms.Label + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel + Friend WithEvents LinkLabel2 As System.Windows.Forms.LinkLabel + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents PictureBoxJRC As System.Windows.Forms.PictureBox +End Class diff --git a/VECTO/GUI/F_AboutBox.resx b/VECTO/GUI/F_AboutBox.resx new file mode 100644 index 0000000000000000000000000000000000000000..d58980a38d71402abe7cf7bbbdeb69d761a29c47 --- /dev/null +++ b/VECTO/GUI/F_AboutBox.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_AboutBox.vb b/VECTO/GUI/F_AboutBox.vb new file mode 100644 index 0000000000000000000000000000000000000000..c74c3968725649685d579af4f6d880e611f759aa --- /dev/null +++ b/VECTO/GUI/F_AboutBox.vb @@ -0,0 +1,42 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' About Dialog. Shows Licence and contact/support information +''' </summary> +''' <remarks></remarks> +Public Class F_AboutBox + + + 'Initialize + Private Sub F10_AboutBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Me.Text = "VECTO " & VECTOvers '& "/ GUI " & GUIvers + Me.LabelLic.Text = Lic.LicString + Me.LabelLicDate.Text = "Expiring date (y/m/d): " & Lic.ExpTime + End Sub + + 'e-mail links---------------------------------------------------------------- + Private Sub LinkLabel1_LinkClicked_1(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked + System.Diagnostics.Process.Start("mailto:vecto@jrc.ec.europa.eu") + End Sub + + '---------------------------------------------------------------------------- + + 'Picture Links------------------------------------------------------------------ + Private Sub PictureBoxJRC_Click(sender As System.Object, e As System.EventArgs) Handles PictureBoxJRC.Click + System.Diagnostics.Process.Start("http://ec.europa.eu/dgs/jrc/index.cfm") + End Sub + + + Private Sub LinkLabel2_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked + System.Diagnostics.Process.Start("https://joinup.ec.europa.eu/software/page/eupl") + End Sub +End Class diff --git a/VECTO/GUI/F_ENG.Designer.vb b/VECTO/GUI/F_ENG.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..01f89326175d22dc4210c989fc354c27219921f5 --- /dev/null +++ b/VECTO/GUI/F_ENG.Designer.vb @@ -0,0 +1,661 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_ENG + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_ENG)) + Me.TbNleerl = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.TbInertia = New System.Windows.Forms.TextBox() + Me.Label41 = New System.Windows.Forms.Label() + Me.Label40 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.ButCancel = New System.Windows.Forms.Button() + Me.ButOK = New System.Windows.Forms.Button() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.LbStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.TbDispl = New System.Windows.Forms.TextBox() + Me.TbName = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.TbMAP = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.BtMAP = New System.Windows.Forms.Button() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BtMAPopen = New System.Windows.Forms.Button() + Me.BtAddFLD = New System.Windows.Forms.Button() + Me.BtRemFLD = New System.Windows.Forms.Button() + Me.LvFLDs = New System.Windows.Forms.ListView() + Me.ColumnHeader0 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Label32 = New System.Windows.Forms.Label() + Me.PnInertia = New System.Windows.Forms.Panel() + Me.GrWHTC = New System.Windows.Forms.GroupBox() + Me.Label13 = New System.Windows.Forms.Label() + Me.TbWHTCmw = New System.Windows.Forms.TextBox() + Me.TbWHTCrural = New System.Windows.Forms.TextBox() + Me.TbWHTCurban = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.PicBox = New System.Windows.Forms.PictureBox() + Me.ToolStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.CmOpenFile.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.PnInertia.SuspendLayout() + Me.GrWHTC.SuspendLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TbNleerl + ' + Me.TbNleerl.Location = New System.Drawing.Point(123, 108) + Me.TbNleerl.Name = "TbNleerl" + Me.TbNleerl.Size = New System.Drawing.Size(57, 20) + Me.TbNleerl.TabIndex = 1 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(15, 111) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(102, 13) + Me.Label11.TabIndex = 15 + Me.Label11.Text = "Idling Engine Speed" + ' + 'TbInertia + ' + Me.TbInertia.Location = New System.Drawing.Point(120, 2) + Me.TbInertia.Name = "TbInertia" + Me.TbInertia.Size = New System.Drawing.Size(57, 20) + Me.TbInertia.TabIndex = 3 + ' + 'Label41 + ' + Me.Label41.AutoSize = True + Me.Label41.Location = New System.Drawing.Point(183, 5) + Me.Label41.Name = "Label41" + Me.Label41.Size = New System.Drawing.Size(36, 13) + Me.Label41.TabIndex = 24 + Me.Label41.Text = "[kgm²]" + ' + 'Label40 + ' + Me.Label40.AutoSize = True + Me.Label40.Location = New System.Drawing.Point(186, 111) + Me.Label40.Name = "Label40" + Me.Label40.Size = New System.Drawing.Size(30, 13) + Me.Label40.TabIndex = 24 + Me.Label40.Text = "[rpm]" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(12, 5) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(102, 13) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "Inertia incl. Flywheel" + ' + 'ButCancel + ' + Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButCancel.Location = New System.Drawing.Point(898, 469) + Me.ButCancel.Name = "ButCancel" + Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.TabIndex = 13 + Me.ButCancel.Text = "Cancel" + Me.ButCancel.UseVisualStyleBackColor = True + ' + 'ButOK + ' + Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButOK.Location = New System.Drawing.Point(817, 469) + Me.ButOK.Name = "ButOK" + Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.TabIndex = 12 + Me.ButOK.Text = "Save" + Me.ButOK.UseVisualStyleBackColor = True + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(985, 25) + Me.ToolStrip1.TabIndex = 30 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtNew + ' + Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtNew.Image = Global.VECTO.My.Resources.Resources.blue_document_icon + Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtNew.Name = "ToolStripBtNew" + Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtNew.Text = "ToolStripButton1" + Me.ToolStripBtNew.ToolTipText = "New" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "ToolStripButton1" + Me.ToolStripBtOpen.ToolTipText = "Open..." + ' + 'ToolStripBtSave + ' + Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSave.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_icon + Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSave.Name = "ToolStripBtSave" + Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSave.Text = "ToolStripButton1" + Me.ToolStripBtSave.ToolTipText = "Save" + ' + 'ToolStripBtSaveAs + ' + Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSaveAs.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_as_icon + Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSaveAs.Text = "ToolStripButton1" + Me.ToolStripBtSaveAs.ToolTipText = "Save As..." + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripBtSendTo + ' + Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSendTo.Image = Global.VECTO.My.Resources.Resources.export_icon + Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSendTo.Text = "Send to Job Editor" + Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Help" + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 495) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(985, 22) + Me.StatusStrip1.SizingGrip = False + Me.StatusStrip1.TabIndex = 37 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'LbStatus + ' + Me.LbStatus.Name = "LbStatus" + Me.LbStatus.Size = New System.Drawing.Size(39, 17) + Me.LbStatus.Text = "Status" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(186, 137) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(33, 13) + Me.Label1.TabIndex = 24 + Me.Label1.Text = "[ccm]" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(46, 137) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(71, 13) + Me.Label2.TabIndex = 13 + Me.Label2.Text = "Displacement" + ' + 'TbDispl + ' + Me.TbDispl.Location = New System.Drawing.Point(123, 134) + Me.TbDispl.Name = "TbDispl" + Me.TbDispl.Size = New System.Drawing.Size(57, 20) + Me.TbDispl.TabIndex = 2 + ' + 'TbName + ' + Me.TbName.Location = New System.Drawing.Point(123, 82) + Me.TbName.Name = "TbName" + Me.TbName.Size = New System.Drawing.Size(370, 20) + Me.TbName.TabIndex = 0 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(30, 85) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(87, 13) + Me.Label3.TabIndex = 11 + Me.Label3.Text = "Make and Model" + ' + 'TbMAP + ' + Me.TbMAP.Location = New System.Drawing.Point(12, 351) + Me.TbMAP.Name = "TbMAP" + Me.TbMAP.Size = New System.Drawing.Size(418, 20) + Me.TbMAP.TabIndex = 5 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(12, 335) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(115, 13) + Me.Label6.TabIndex = 38 + Me.Label6.Text = "Fuel Consumption Map" + ' + 'BtMAP + ' + Me.BtMAP.Location = New System.Drawing.Point(436, 349) + Me.BtMAP.Name = "BtMAP" + Me.BtMAP.Size = New System.Drawing.Size(28, 23) + Me.BtMAP.TabIndex = 6 + Me.BtMAP.TabStop = False + Me.BtMAP.Text = "..." + Me.BtMAP.UseVisualStyleBackColor = True + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_ENG + Me.PictureBox1.Location = New System.Drawing.Point(12, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(481, 40) + Me.PictureBox1.TabIndex = 39 + Me.PictureBox1.TabStop = False + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'BtMAPopen + ' + Me.BtMAPopen.Image = Global.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtMAPopen.Location = New System.Drawing.Point(470, 349) + Me.BtMAPopen.Name = "BtMAPopen" + Me.BtMAPopen.Size = New System.Drawing.Size(23, 23) + Me.BtMAPopen.TabIndex = 7 + Me.BtMAPopen.TabStop = False + Me.BtMAPopen.UseVisualStyleBackColor = True + ' + 'BtAddFLD + ' + Me.BtAddFLD.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtAddFLD.Location = New System.Drawing.Point(6, 133) + Me.BtAddFLD.Name = "BtAddFLD" + Me.BtAddFLD.Size = New System.Drawing.Size(29, 23) + Me.BtAddFLD.TabIndex = 1 + Me.BtAddFLD.UseVisualStyleBackColor = True + ' + 'BtRemFLD + ' + Me.BtRemFLD.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtRemFLD.Location = New System.Drawing.Point(43, 133) + Me.BtRemFLD.Name = "BtRemFLD" + Me.BtRemFLD.Size = New System.Drawing.Size(29, 23) + Me.BtRemFLD.TabIndex = 2 + Me.BtRemFLD.UseVisualStyleBackColor = True + ' + 'LvFLDs + ' + Me.LvFLDs.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader0, Me.ColumnHeader1}) + Me.LvFLDs.FullRowSelect = True + Me.LvFLDs.GridLines = True + Me.LvFLDs.HideSelection = False + Me.LvFLDs.Location = New System.Drawing.Point(6, 19) + Me.LvFLDs.MultiSelect = False + Me.LvFLDs.Name = "LvFLDs" + Me.LvFLDs.Size = New System.Drawing.Size(469, 108) + Me.LvFLDs.TabIndex = 0 + Me.LvFLDs.TabStop = False + Me.LvFLDs.UseCompatibleStateImageBehavior = False + Me.LvFLDs.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader0 + ' + Me.ColumnHeader0.Text = "File" + Me.ColumnHeader0.Width = 365 + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Assigned Gears" + Me.ColumnHeader1.Width = 92 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.Label32) + Me.GroupBox1.Controls.Add(Me.LvFLDs) + Me.GroupBox1.Controls.Add(Me.BtRemFLD) + Me.GroupBox1.Controls.Add(Me.BtAddFLD) + Me.GroupBox1.Location = New System.Drawing.Point(12, 160) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(481, 162) + Me.GroupBox1.TabIndex = 4 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Full Load and Drag Curves" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Location = New System.Drawing.Point(354, 138) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(121, 13) + Me.Label32.TabIndex = 44 + Me.Label32.Text = "Double-Click to edit item" + ' + 'PnInertia + ' + Me.PnInertia.Controls.Add(Me.Label5) + Me.PnInertia.Controls.Add(Me.Label41) + Me.PnInertia.Controls.Add(Me.TbInertia) + Me.PnInertia.Location = New System.Drawing.Point(264, 106) + Me.PnInertia.Name = "PnInertia" + Me.PnInertia.Size = New System.Drawing.Size(229, 32) + Me.PnInertia.TabIndex = 3 + ' + 'GrWHTC + ' + Me.GrWHTC.Controls.Add(Me.Label13) + Me.GrWHTC.Controls.Add(Me.TbWHTCmw) + Me.GrWHTC.Controls.Add(Me.TbWHTCrural) + Me.GrWHTC.Controls.Add(Me.TbWHTCurban) + Me.GrWHTC.Controls.Add(Me.Label8) + Me.GrWHTC.Controls.Add(Me.Label12) + Me.GrWHTC.Controls.Add(Me.Label10) + Me.GrWHTC.Controls.Add(Me.Label9) + Me.GrWHTC.Controls.Add(Me.Label7) + Me.GrWHTC.Controls.Add(Me.Label4) + Me.GrWHTC.Enabled = False + Me.GrWHTC.Location = New System.Drawing.Point(12, 392) + Me.GrWHTC.Name = "GrWHTC" + Me.GrWHTC.Size = New System.Drawing.Size(481, 91) + Me.GrWHTC.TabIndex = 9 + Me.GrWHTC.TabStop = False + Me.GrWHTC.Text = "WHTC Test Results" + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.Location = New System.Drawing.Point(6, 27) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(91, 13) + Me.Label13.TabIndex = 3 + Me.Label13.Text = "Fuel Consumption" + ' + 'TbWHTCmw + ' + Me.TbWHTCmw.Location = New System.Drawing.Point(348, 56) + Me.TbWHTCmw.Name = "TbWHTCmw" + Me.TbWHTCmw.Size = New System.Drawing.Size(57, 20) + Me.TbWHTCmw.TabIndex = 2 + ' + 'TbWHTCrural + ' + Me.TbWHTCrural.Location = New System.Drawing.Point(192, 56) + Me.TbWHTCrural.Name = "TbWHTCrural" + Me.TbWHTCrural.Size = New System.Drawing.Size(57, 20) + Me.TbWHTCrural.TabIndex = 1 + ' + 'TbWHTCurban + ' + Me.TbWHTCurban.Location = New System.Drawing.Point(36, 56) + Me.TbWHTCurban.Name = "TbWHTCurban" + Me.TbWHTCurban.Size = New System.Drawing.Size(57, 20) + Me.TbWHTCurban.TabIndex = 0 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(317, 59) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(25, 13) + Me.Label8.TabIndex = 0 + Me.Label8.Text = "Mot" + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(411, 59) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(47, 13) + Me.Label12.TabIndex = 0 + Me.Label12.Text = "[g/kWh]" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(255, 59) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(47, 13) + Me.Label10.TabIndex = 0 + Me.Label10.Text = "[g/kWh]" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(99, 59) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(47, 13) + Me.Label9.TabIndex = 0 + Me.Label9.Text = "[g/kWh]" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(162, 59) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(24, 13) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "Rur" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(6, 59) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(24, 13) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Urb" + ' + 'PicBox + ' + Me.PicBox.BackColor = System.Drawing.Color.LightGray + Me.PicBox.Location = New System.Drawing.Point(499, 28) + Me.PicBox.Name = "PicBox" + Me.PicBox.Size = New System.Drawing.Size(474, 425) + Me.PicBox.TabIndex = 40 + Me.PicBox.TabStop = False + ' + 'F_ENG + ' + Me.AcceptButton = Me.ButOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButCancel + Me.ClientSize = New System.Drawing.Size(985, 517) + Me.Controls.Add(Me.PicBox) + Me.Controls.Add(Me.GrWHTC) + Me.Controls.Add(Me.PnInertia) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.BtMAPopen) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.BtMAP) + Me.Controls.Add(Me.Label6) + Me.Controls.Add(Me.TbNleerl) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.Label11) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.TbDispl) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.ButCancel) + Me.Controls.Add(Me.ButOK) + Me.Controls.Add(Me.TbMAP) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.Label40) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TbName) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "F_ENG" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "F_ENG" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.CmOpenFile.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.PnInertia.ResumeLayout(False) + Me.PnInertia.PerformLayout() + Me.GrWHTC.ResumeLayout(False) + Me.GrWHTC.PerformLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TbNleerl As System.Windows.Forms.TextBox + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents TbInertia As System.Windows.Forms.TextBox + Friend WithEvents Label41 As System.Windows.Forms.Label + Friend WithEvents Label40 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents ButCancel As System.Windows.Forms.Button + Friend WithEvents ButOK As System.Windows.Forms.Button + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtNew As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSave As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSaveAs As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripBtSendTo As System.Windows.Forms.ToolStripButton + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents LbStatus As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents TbDispl As System.Windows.Forms.TextBox + Friend WithEvents TbName As System.Windows.Forms.TextBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents TbMAP As System.Windows.Forms.TextBox + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents BtMAP As System.Windows.Forms.Button + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BtMAPopen As System.Windows.Forms.Button + Friend WithEvents BtAddFLD As System.Windows.Forms.Button + Friend WithEvents BtRemFLD As System.Windows.Forms.Button + Friend WithEvents LvFLDs As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader0 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label32 As System.Windows.Forms.Label + Friend WithEvents PnInertia As System.Windows.Forms.Panel + Friend WithEvents GrWHTC As System.Windows.Forms.GroupBox + Friend WithEvents TbWHTCmw As System.Windows.Forms.TextBox + Friend WithEvents TbWHTCrural As System.Windows.Forms.TextBox + Friend WithEvents TbWHTCurban As System.Windows.Forms.TextBox + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents Label12 As System.Windows.Forms.Label + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents PicBox As System.Windows.Forms.PictureBox + Friend WithEvents Label13 As System.Windows.Forms.Label +End Class diff --git a/VECTO/GUI/F_ENG.resx b/VECTO/GUI/F_ENG.resx new file mode 100644 index 0000000000000000000000000000000000000000..81623a24e36cbaf6c70822eb47f982f654db0f27 --- /dev/null +++ b/VECTO/GUI/F_ENG.resx @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>114, 20</value> + </metadata> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>226, 18</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QLg6NsG/v7+AgAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + /////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4B1uDQEIil + di319/MQ////AQAAAAAAAAAAAAAAAAAAAAD/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gudtI5FRHEmhMbUvS7+/v4CAAAAAAAAAAAAAAAAAAAAAP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B7PDpJmOJS5s4aBnEjal8Wf39/A8AAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wIAAAAAAAAAAAAAAAD/////AAAA/wAA + AP8AAAD/AAAA////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+CQAAAAAAAAAAAAAAAP// + //8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2QV4zy9fAg////AQAA + AAAAAAAA/////wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJqyilI1ZhbTNmYW/TZmF/82Zhf5P20hwMDP + tzj+/v4EAAAAAAAAAAD/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wLr7+cpX4ZFpTVmFfA2ZhX/NmYW/zZm + Fv42ZhfZh6N0ZPz9/BL+/v4BAAAAAP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+B7TGqEI6ahnMNmcV/DZn + Ff82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/gIAAAAA/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+vgZeppleTVm + FOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+CgAAAAD/////AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+As/b + yDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5fv8+0k////Af////8AAAD/AAAA/wAA + AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxbzMsTz+/v4F/////wAA + AP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAAAAAAAAAAAAAAAAAA + AAAAAAAA////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf41ZhTdgqBubfv8 + +hX/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVm + FPVLdy6z1+DQL/7+/v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //8AAAAAAAAAAAAAAAAAAAAA////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/TVmFdOctI1R/v7+/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAD+/v4CzdnFMURxJbo1ZhT4NWYU/zVmFP81ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP82ZxX/NWYU7mKISZ/8/Pv///////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39/QL9/v0C/f79Av3+ + /QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79AgAAAAD///8C5uziK1mBPqs0ZRPzNWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTezUPZ4tM12eLTNdni + 0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U12eLUNdrj1DXa49U1AAAAAP7+/givwqJGN2cWzjVm + FP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFfg1ZhThRHImz0Rx + JspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3LspIdCvKSXUsykt3Lsr//v8B9vj1HXSW + XoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZn + Ff42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/f7/ + /gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVmFP01ZhT/NWYU/zVm + FP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpqG/87axz/Omka/zpq + G/87axz//f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp3k1fhkWnNGUT8TVm + FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zhoGf85aRr/Omob/ztr + HP85aRr/Omob/ztrHP/j6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5Cq + flU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp + Gv86ahv/O2sc/zlpGv86ahv/O2sc/6zAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVmFP81ZhT9PWwdycPS + ujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdn + GP83Zxj/OWka/zpqG/86ahv/OWka/zpqG/86ahv/cpRchjRlE+Y1ZhT+NWYU/zVmFP81ZhT/NWYU/zVm + FPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhT/NmYV/zZm + F/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/85aRr/Omob/zpqG/9BbyK6NGUU9jVmFP01ZhT9NWYU/TVm + FP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZm + Ff02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/ThoGf06aRr9Omob/TZnFaE2ZxXINmcVyjZn + Fco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gUAAAAA/v7+A7rKrzA7ahuiNmcVyTZnFco2ZxXKN2cWyjdo + Fso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3KOmobyjtrHMo8ax3KscSkKrHE + pDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+AQAAAAAAAAAA8/bxC7bHqiqxxKQ1scSkNbHE + pDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPFpzWyxaY1s8WnNbPF + pzX///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAA////Av// + /wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////gAP//4AD/9+AA/+fgAP/j4AD/4+B//8HgAf/B4AH/geAB/4D + gAf+A4AH/AGB//wBgAP4AYAD+ACAA/gAgAPwAAAD8AB//+AAP//gAAAAwAAAAMAAAADAIAAAgHAAAIBw + AAAAcAAAAPgAAAD4AAD///////////////8= +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_ENG.vb b/VECTO/GUI/F_ENG.vb new file mode 100644 index 0000000000000000000000000000000000000000..06262fa82a7c631a7b657ec4d5fc32bb975b2d72 --- /dev/null +++ b/VECTO/GUI/F_ENG.vb @@ -0,0 +1,664 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Engine Editor. Open and save .VENG files. +''' </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 FLDdia As F_FLD + + + '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 + + FLDdia = New F_FLD + + Me.PnInertia.Enabled = Not Cfg.DeclMode + Me.GrWHTC.Enabled = Cfg.DeclMode + + + Changed = False + newENG() + End Sub + + 'Set generic values for Declaration mode. + Private Sub DeclInit() + + If Not Cfg.DeclMode Then Exit 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 ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub + + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub + + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + + If ChangeCheckCancel() Then Exit Sub + + 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 Not F_VECTO.Visible Then + JobDir = "" + F_VECTO.Show() + F_VECTO.VECTOnew() + Else + F_VECTO.WindowState = FormWindowState.Normal + End If + + 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 + +#End Region + + 'Create new empty Engine file. + Private Sub newENG() + + If ChangeCheckCancel() Then Exit Sub + + Me.TbName.Text = "" + Me.TbDispl.Text = "" + Me.TbInertia.Text = "" + Me.TbNleerl.Text = "" + Me.LvFLDs.Items.Clear() + Me.TbMAP.Text = "" + Me.TbWHTCurban.Text = "" + Me.TbWHTCrural.Text = "" + Me.TbWHTCmw.Text = "" + + + DeclInit() + + + EngFile = "" + Me.Text = "ENG Editor" + Me.LbStatus.Text = "" + + Changed = False + + UpdatePic() + + End Sub + + 'Open VENG file + Public Sub openENG(ByVal file As String) + Dim ENG0 As cENG + Dim i As Integer + Dim lv0 As ListViewItem + + If ChangeCheckCancel() Then Exit Sub + + ENG0 = New cENG + + ENG0.FilePath = file + + 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 + + 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.LvFLDs.Items.Clear() + For i = 0 To ENG0.fFLD.Count - 1 + lv0 = New ListViewItem(ENG0.PathFLD(i, True)) + lv0.SubItems.Add(ENG0.FLDgears(i)) + Me.LvFLDs.Items.Add(lv0) + Next + + Me.TbMAP.Text = ENG0.PathMAP(True) + Me.TbWHTCurban.Text = ENG0.WHTCurban + Me.TbWHTCrural.Text = ENG0.WHTCrural + Me.TbWHTCmw.Text = ENG0.WHTCmw + + + DeclInit() + + + fbENG.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + EngFile = 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 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 + Dim i As Int16 + + 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)) + + For i = 0 To Me.LvFLDs.Items.Count - 1 + ENG0.fFLD.Add(New cSubPath) + ENG0.PathFLD(i) = Me.LvFLDs.Items(i).SubItems(0).Text + ENG0.FLDgears.Add(Me.LvFLDs.Items(i).SubItems(1).Text) + Next + + 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)) + + + + + 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 + + fbENG.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + + Changed = False + + 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 + + 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 + + Else + + Return False + + End If + + End Function + + + 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 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 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 TbMAP_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMAP.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 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 LvFLDs_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LvFLDs.SelectedIndexChanged + UpdatePic() + End Sub + + + +#End Region + +#Region "Add/Remove/Edit VFLD entries" + + Private Sub LvFLDs_DoubleClick(sender As Object, e As System.EventArgs) Handles LvFLDs.DoubleClick + EditFLD() + End Sub + + Private Sub LvFLDs_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvFLDs.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + RemoveFLD(False) + Case Keys.Enter + EditFLD() + End Select + End Sub + + Private Sub BtAddFLD_Click(sender As System.Object, e As System.EventArgs) Handles BtAddFLD.Click + AddFLD() + Me.LvFLDs.Items(Me.LvFLDs.Items.Count - 1).Selected = True + EditFLD() + End Sub + + Private Sub BtRemFLD_Click(sender As System.Object, e As System.EventArgs) Handles BtRemFLD.Click + RemoveFLD(False) + End Sub + + Private Sub EditFLD() + Dim nums As String() + + FLDdia.EngFile = EngFile + FLDdia.TbFLD.Text = Me.LvFLDs.SelectedItems(0).SubItems(0).Text + + If Me.LvFLDs.SelectedItems(0).SubItems(1).Text.Contains("-") Then + Try + nums = Me.LvFLDs.SelectedItems(0).SubItems(1).Text.Replace(" ", "").Split("-") + FLDdia.NumGearFrom.Value = Math.Max(CInt(nums(0)), 0) + FLDdia.NumGearTo.Value = Math.Min(CInt(nums(1)), 99) + Catch ex As Exception + FLDdia.NumGearFrom.Value = 0 + FLDdia.NumGearTo.Value = 99 + MsgBox(Me.LvFLDs.SelectedItems(0).SubItems(1).Text & " is no valid range!") + End Try + Else + FLDdia.NumGearFrom.Value = Math.Max(CInt(Me.LvFLDs.SelectedItems(0).SubItems(1).Text), 0) + FLDdia.NumGearTo.Value = Math.Min(CInt(Me.LvFLDs.SelectedItems(0).SubItems(1).Text), 99) + End If + + If FLDdia.ShowDialog = Windows.Forms.DialogResult.OK Then + + Me.LvFLDs.SelectedItems(0).SubItems(0).Text = FLDdia.TbFLD.Text + + If FLDdia.NumGearFrom.Value = FLDdia.NumGearTo.Value Then + Me.LvFLDs.SelectedItems(0).SubItems(1).Text = FLDdia.NumGearFrom.Value + Else + Me.LvFLDs.SelectedItems(0).SubItems(1).Text = FLDdia.NumGearFrom.Value & "-" & FLDdia.NumGearTo.Value + End If + + UpdatePic() + + Change() + + Else + + If Me.LvFLDs.SelectedItems(0).SubItems(0).Text = "" Then RemoveFLD(True) + + End If + + + End Sub + + Private Sub AddFLD() + Dim lvi As ListViewItem + + lvi = New ListViewItem("") + lvi.SubItems.Add("0 - 99") + Me.LvFLDs.Items.Add(lvi) + + lvi.EnsureVisible() + + Me.LvFLDs.Focus() + + 'Change() => NO! Already in EditFLD + + End Sub + + Private Sub RemoveFLD(ByVal NoChange As Boolean) + Dim i0 As Int16 + + If Me.LvFLDs.Items.Count = 0 Then Exit Sub + + If Me.LvFLDs.SelectedItems.Count = 0 Then Me.LvFLDs.Items(Me.LvFLDs.Items.Count - 1).Selected = True + + i0 = Me.LvFLDs.SelectedItems(0).Index + + Me.LvFLDs.SelectedItems(0).Remove() + + If i0 < Me.LvFLDs.Items.Count Then + Me.LvFLDs.Items(i0).Selected = True + Me.LvFLDs.Items(i0).EnsureVisible() + End If + + Me.LvFLDs.Focus() + UpdatePic() + + + If Not NoChange Then Change() + + 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)) + End Sub + + + 'Open VMAP file + Private Sub BtMAPopen_Click(sender As System.Object, e As System.EventArgs) Handles BtMAPopen.Click + Dim fldfile As String + + If Me.LvFLDs.Items.Count = 1 Then + fldfile = fFileRepl(Me.LvFLDs.Items(0).Text, fPATH(EngFile)) + Else + fldfile = sKey.NoFile + End If + + + If fldfile <> sKey.NoFile AndAlso IO.File.Exists(fldfile) Then + OpenFiles(fFileRepl(Me.TbMAP.Text, fPATH(EngFile)), fldfile) + 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 + + '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() + + Dim fldOK As Boolean = False + Dim mapOK As Boolean = False + Dim fp As String + Dim FLD0 As New cFLD + Dim MAP0 As New cMAP + Dim Shiftpoly As cGBX.cShiftPolygon + 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 + + Try + + 'Read Files + If Me.LvFLDs.Items.Count > 0 Then + If Me.LvFLDs.SelectedItems.Count > 0 Then + fp = fFileRepl(Me.LvFLDs.SelectedItems(0).Text, fPATH(EngFile)) + Else + fp = fFileRepl(Me.LvFLDs.Items(0).Text, fPATH(EngFile)) + End If + FLD0.FilePath = fp + fldOK = FLD0.ReadFile(False) + End If + + MAP0.FilePath = fFileRepl(Me.TbMAP.Text, fPATH(EngFile)) + mapOK = MAP0.ReadFile(False) + + Catch ex As Exception + + 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 + + If fldOK Then + + 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) + + 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) + + If IsNumeric(Me.TbNleerl.Text) AndAlso Me.TbNleerl.Text > 0 Then + + FLD0.Init(CSng(Me.TbNleerl.Text)) + + Shiftpoly = New cGBX.cShiftPolygon("", 0) + Shiftpoly.SetGenericShiftPoly(FLD0, Me.TbNleerl.Text) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Upshift curve" + MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Downshift curve" + MyChart.Series.Add(s) + + End If + + 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" + + 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 + + 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 + + a.AxisX.Minimum = 300 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 + + a.BackColor = Color.GhostWhite + + MyChart.ChartAreas.Add(a) + + 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)) + + + Me.PicBox.Image = img + + + End Sub + + + +#Region "Open File Context Menu" + + Private CmFiles As String() + + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + 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 + 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 + +#End Region + + + +End Class diff --git a/VECTO/GUI/F_FLD.Designer.vb b/VECTO/GUI/F_FLD.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..0a04f964079c5609ea0ace2e0c59f31775151446 --- /dev/null +++ b/VECTO/GUI/F_FLD.Designer.vb @@ -0,0 +1,251 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_FLD + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.BtFLDOpen = New System.Windows.Forms.Button() + Me.BtFLD = New System.Windows.Forms.Button() + Me.TbFLD = New System.Windows.Forms.TextBox() + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Label4 = New System.Windows.Forms.Label() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.NumGearTo = New System.Windows.Forms.NumericUpDown() + Me.NumGearFrom = New System.Windows.Forms.NumericUpDown() + Me.TableLayoutPanel1.SuspendLayout() + Me.CmOpenFile.SuspendLayout() + Me.GroupBox1.SuspendLayout() + CType(Me.NumGearTo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.NumGearFrom, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(345, 131) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 4 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'BtFLDOpen + ' + Me.BtFLDOpen.Image = Global.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtFLDOpen.Location = New System.Drawing.Point(470, 23) + Me.BtFLDOpen.Name = "BtFLDOpen" + Me.BtFLDOpen.Size = New System.Drawing.Size(23, 23) + Me.BtFLDOpen.TabIndex = 2 + Me.BtFLDOpen.TabStop = False + Me.BtFLDOpen.UseVisualStyleBackColor = True + ' + 'BtFLD + ' + Me.BtFLD.Location = New System.Drawing.Point(436, 23) + Me.BtFLD.Name = "BtFLD" + Me.BtFLD.Size = New System.Drawing.Size(28, 23) + Me.BtFLD.TabIndex = 1 + Me.BtFLD.TabStop = False + Me.BtFLD.Text = "..." + Me.BtFLD.UseVisualStyleBackColor = True + ' + 'TbFLD + ' + Me.TbFLD.Location = New System.Drawing.Point(12, 25) + Me.TbFLD.Name = "TbFLD" + Me.TbFLD.Size = New System.Drawing.Size(418, 20) + Me.TbFLD.TabIndex = 0 + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(12, 9) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(157, 13) + Me.Label4.TabIndex = 45 + Me.Label4.Text = "Full Load and Drag Curve (.vfld)" + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Controls.Add(Me.NumGearTo) + Me.GroupBox1.Controls.Add(Me.NumGearFrom) + Me.GroupBox1.Location = New System.Drawing.Point(12, 51) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(479, 64) + Me.GroupBox1.TabIndex = 3 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Assigned Gears" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(225, 31) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(229, 13) + Me.Label3.TabIndex = 2 + Me.Label3.Text = "Gear 0 is used for Idling and Engine Only Mode" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(129, 31) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(20, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "To" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(14, 31) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(30, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "From" + ' + 'NumGearTo + ' + Me.NumGearTo.Location = New System.Drawing.Point(155, 29) + Me.NumGearTo.Maximum = New Decimal(New Integer() {99, 0, 0, 0}) + Me.NumGearTo.Name = "NumGearTo" + Me.NumGearTo.Size = New System.Drawing.Size(51, 20) + Me.NumGearTo.TabIndex = 1 + ' + 'NumGearFrom + ' + Me.NumGearFrom.Location = New System.Drawing.Point(50, 29) + Me.NumGearFrom.Maximum = New Decimal(New Integer() {99, 0, 0, 0}) + Me.NumGearFrom.Name = "NumGearFrom" + Me.NumGearFrom.Size = New System.Drawing.Size(51, 20) + Me.NumGearFrom.TabIndex = 0 + ' + 'F_FLD + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(503, 172) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.BtFLDOpen) + Me.Controls.Add(Me.BtFLD) + Me.Controls.Add(Me.TbFLD) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_FLD" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Full load and Drag Curve" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.CmOpenFile.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + CType(Me.NumGearTo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.NumGearFrom, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents BtFLDOpen As System.Windows.Forms.Button + Friend WithEvents BtFLD As System.Windows.Forms.Button + Friend WithEvents TbFLD As System.Windows.Forms.TextBox + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents NumGearTo As System.Windows.Forms.NumericUpDown + Friend WithEvents NumGearFrom As System.Windows.Forms.NumericUpDown + Friend WithEvents Label3 As System.Windows.Forms.Label + +End Class diff --git a/VECTO/GUI/F_FLD.resx b/VECTO/GUI/F_FLD.resx new file mode 100644 index 0000000000000000000000000000000000000000..8aada03f0db0180650a92e2497068b052642bfca --- /dev/null +++ b/VECTO/GUI/F_FLD.resx @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_FLD.vb b/VECTO/GUI/F_FLD.vb new file mode 100644 index 0000000000000000000000000000000000000000..de8140e0965297a788e705961926fe3a35f722c9 --- /dev/null +++ b/VECTO/GUI/F_FLD.vb @@ -0,0 +1,91 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +Imports System.Windows.Forms + +' See the LICENSE.txt for the specific language governing permissions and limitations. +''' <summary> +''' Dialog for selecting VFLD files and assign Gears. +''' </summary> +''' <remarks></remarks> +Public Class F_FLD + + 'Parent Engine file + Public EngFile As String = "" + + 'Save and close + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + + If Trim(Me.TbFLD.Text) = "" Then + MsgBox("No file defined!") + Me.TbFLD.Focus() + Me.TbFLD.SelectAll() + Exit Sub + End If + + If Me.NumGearTo.Value < Me.NumGearFrom.Value Then + MsgBox("Invalid gear range!") + Exit Sub + End If + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 'Cancel + 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 + + 'Browse for VFLD file + Private Sub BtFLD_Click(sender As System.Object, e As System.EventArgs) Handles BtFLD.Click + If fbFLD.OpenDialog(fFileRepl(Me.TbFLD.Text, fPATH(EngFile))) Then Me.TbFLD.Text = fFileWoDir(fbFLD.Files(0), fPATH(EngFile)) + End Sub + + 'Open VFLD file + Private Sub BtFLDOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtFLDOpen.Click + OpenFiles(fFileRepl(Me.TbFLD.Text, fPATH(EngFile))) + End Sub + +#Region "Open File Context Menu" + + Private CmFiles As String() + + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + 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 + 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 + +#End Region + +End Class diff --git a/VECTO/GUI/F_FileSign.Designer.vb b/VECTO/GUI/F_FileSign.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..43edf26e5f8f6aab8aeb091edee31d654b9d9cfa --- /dev/null +++ b/VECTO/GUI/F_FileSign.Designer.vb @@ -0,0 +1,360 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_FileSign + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_FileSign)) + Me.TbSigFile = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.BtBrowse = New System.Windows.Forms.Button() + Me.lvFiles = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.BtSign = New System.Windows.Forms.Button() + Me.BtClose = New System.Windows.Forms.Button() + Me.BtRemFLD = New System.Windows.Forms.Button() + Me.BtAddFLD = New System.Windows.Forms.Button() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.BtClearList = New System.Windows.Forms.Button() + Me.BtReload = New System.Windows.Forms.Button() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.LbStatus = New System.Windows.Forms.Label() + Me.LbMode = New System.Windows.Forms.Label() + Me.LbDateStr = New System.Windows.Forms.Label() + Me.TbPubKey = New System.Windows.Forms.TextBox() + Me.TbLicStr = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.GroupBox1.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.SuspendLayout() + ' + 'TbSigFile + ' + Me.TbSigFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbSigFile.Location = New System.Drawing.Point(12, 29) + Me.TbSigFile.Name = "TbSigFile" + Me.TbSigFile.Size = New System.Drawing.Size(509, 20) + Me.TbSigFile.TabIndex = 0 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 13) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(99, 13) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "Signature file (.vsig)" + ' + 'BtBrowse + ' + Me.BtBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtBrowse.Location = New System.Drawing.Point(527, 27) + Me.BtBrowse.Name = "BtBrowse" + Me.BtBrowse.Size = New System.Drawing.Size(28, 23) + Me.BtBrowse.TabIndex = 1 + Me.BtBrowse.Text = "..." + Me.BtBrowse.UseVisualStyleBackColor = True + ' + 'lvFiles + ' + Me.lvFiles.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lvFiles.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2}) + Me.lvFiles.FullRowSelect = True + Me.lvFiles.GridLines = True + Me.lvFiles.LabelEdit = True + Me.lvFiles.Location = New System.Drawing.Point(6, 19) + Me.lvFiles.MultiSelect = False + Me.lvFiles.Name = "lvFiles" + Me.lvFiles.Size = New System.Drawing.Size(565, 368) + Me.lvFiles.TabIndex = 0 + Me.lvFiles.UseCompatibleStateImageBehavior = False + Me.lvFiles.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "File" + Me.ColumnHeader1.Width = 408 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Status" + Me.ColumnHeader2.Width = 141 + ' + 'BtSign + ' + Me.BtSign.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtSign.Location = New System.Drawing.Point(12, 638) + Me.BtSign.Name = "BtSign" + Me.BtSign.Size = New System.Drawing.Size(126, 23) + Me.BtSign.TabIndex = 5 + Me.BtSign.Text = "Create Signature File" + Me.BtSign.UseVisualStyleBackColor = True + ' + 'BtClose + ' + Me.BtClose.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtClose.Location = New System.Drawing.Point(522, 638) + Me.BtClose.Name = "BtClose" + Me.BtClose.Size = New System.Drawing.Size(67, 23) + Me.BtClose.TabIndex = 6 + Me.BtClose.Text = "Close" + Me.BtClose.UseVisualStyleBackColor = True + ' + 'BtRemFLD + ' + Me.BtRemFLD.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtRemFLD.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtRemFLD.Location = New System.Drawing.Point(43, 393) + Me.BtRemFLD.Name = "BtRemFLD" + Me.BtRemFLD.Size = New System.Drawing.Size(29, 23) + Me.BtRemFLD.TabIndex = 2 + Me.BtRemFLD.UseVisualStyleBackColor = True + ' + 'BtAddFLD + ' + Me.BtAddFLD.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtAddFLD.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtAddFLD.Location = New System.Drawing.Point(6, 393) + Me.BtAddFLD.Name = "BtAddFLD" + Me.BtAddFLD.Size = New System.Drawing.Size(29, 23) + Me.BtAddFLD.TabIndex = 1 + Me.BtAddFLD.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.lvFiles) + Me.GroupBox1.Controls.Add(Me.BtClearList) + Me.GroupBox1.Controls.Add(Me.BtRemFLD) + Me.GroupBox1.Controls.Add(Me.BtAddFLD) + Me.GroupBox1.Location = New System.Drawing.Point(12, 210) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(577, 422) + Me.GroupBox1.TabIndex = 4 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Files" + ' + 'BtClearList + ' + Me.BtClearList.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtClearList.Location = New System.Drawing.Point(78, 393) + Me.BtClearList.Name = "BtClearList" + Me.BtClearList.Size = New System.Drawing.Size(63, 23) + Me.BtClearList.TabIndex = 3 + Me.BtClearList.Text = "Clear List" + Me.BtClearList.UseVisualStyleBackColor = True + ' + 'BtReload + ' + Me.BtReload.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtReload.Image = Global.VECTO.My.Resources.Resources.Refresh_icon + Me.BtReload.Location = New System.Drawing.Point(561, 27) + Me.BtReload.Name = "BtReload" + Me.BtReload.Size = New System.Drawing.Size(28, 23) + Me.BtReload.TabIndex = 2 + Me.BtReload.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.LbStatus) + Me.GroupBox2.Controls.Add(Me.LbMode) + Me.GroupBox2.Controls.Add(Me.LbDateStr) + Me.GroupBox2.Controls.Add(Me.TbPubKey) + Me.GroupBox2.Controls.Add(Me.TbLicStr) + Me.GroupBox2.Controls.Add(Me.Label5) + Me.GroupBox2.Controls.Add(Me.Label6) + Me.GroupBox2.Controls.Add(Me.Label3) + Me.GroupBox2.Controls.Add(Me.Label4) + Me.GroupBox2.Controls.Add(Me.Label2) + Me.GroupBox2.Location = New System.Drawing.Point(18, 55) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(571, 149) + Me.GroupBox2.TabIndex = 3 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "File Information" + ' + 'LbStatus + ' + Me.LbStatus.AutoSize = True + Me.LbStatus.Location = New System.Drawing.Point(99, 116) + Me.LbStatus.Name = "LbStatus" + Me.LbStatus.Size = New System.Drawing.Size(0, 13) + Me.LbStatus.TabIndex = 4 + ' + 'LbMode + ' + Me.LbMode.AutoSize = True + Me.LbMode.Location = New System.Drawing.Point(99, 87) + Me.LbMode.Name = "LbMode" + Me.LbMode.Size = New System.Drawing.Size(0, 13) + Me.LbMode.TabIndex = 3 + ' + 'LbDateStr + ' + Me.LbDateStr.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LbDateStr.AutoSize = True + Me.LbDateStr.Location = New System.Drawing.Point(415, 87) + Me.LbDateStr.Name = "LbDateStr" + Me.LbDateStr.Size = New System.Drawing.Size(0, 13) + Me.LbDateStr.TabIndex = 2 + ' + 'TbPubKey + ' + Me.TbPubKey.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbPubKey.Location = New System.Drawing.Point(99, 48) + Me.TbPubKey.Name = "TbPubKey" + Me.TbPubKey.ReadOnly = True + Me.TbPubKey.Size = New System.Drawing.Size(466, 20) + Me.TbPubKey.TabIndex = 1 + ' + 'TbLicStr + ' + Me.TbLicStr.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbLicStr.Location = New System.Drawing.Point(99, 22) + Me.TbLicStr.Name = "TbLicStr" + Me.TbLicStr.ReadOnly = True + Me.TbLicStr.Size = New System.Drawing.Size(466, 20) + Me.TbLicStr.TabIndex = 0 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(33, 51) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(60, 13) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "Public Key:" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(53, 116) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(40, 13) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "Status:" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(56, 87) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(37, 13) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "Mode:" + ' + 'Label4 + ' + Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(334, 87) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(75, 13) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Creation Time:" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(12, 25) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(81, 13) + Me.Label2.TabIndex = 0 + Me.Label2.Text = "License Owner:" + ' + 'F_FileSign + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(601, 673) + Me.Controls.Add(Me.GroupBox2) + Me.Controls.Add(Me.BtReload) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.BtClose) + Me.Controls.Add(Me.BtSign) + Me.Controls.Add(Me.BtBrowse) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TbSigFile) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(480, 400) + Me.Name = "F_FileSign" + Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Sign & Verify Files" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TbSigFile As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents BtBrowse As System.Windows.Forms.Button + Friend WithEvents lvFiles As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents BtSign As System.Windows.Forms.Button + Friend WithEvents BtClose As System.Windows.Forms.Button + Friend WithEvents BtRemFLD As System.Windows.Forms.Button + Friend WithEvents BtAddFLD As System.Windows.Forms.Button + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents BtClearList As System.Windows.Forms.Button + Friend WithEvents BtReload As System.Windows.Forms.Button + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents LbMode As System.Windows.Forms.Label + Friend WithEvents LbDateStr As System.Windows.Forms.Label + Friend WithEvents TbPubKey As System.Windows.Forms.TextBox + Friend WithEvents TbLicStr As System.Windows.Forms.TextBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents LbStatus As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + +End Class diff --git a/VECTO/GUI/F_FileSign.resx b/VECTO/GUI/F_FileSign.resx new file mode 100644 index 0000000000000000000000000000000000000000..67506e4ae66e49508c6860afb6374f19ef548823 --- /dev/null +++ b/VECTO/GUI/F_FileSign.resx @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAZBAQEMwYGBjIAAAAVAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAA4zMzNxpaWl3dPT0/7R0dH+nZ2d4DExMXIAAAAJAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAdDQ0N/2dnZ/dzc3P/i4uL/5+fn/+vr6//Y2Nj+PT09ggAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAEBAQsv7+/8NfX1//c3Nz/3t7e/+fn5//r6+v/7Ozs/8TExPcJCQknAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAMTExaMvLy//Z2dn/3Nzc/9zc3P/h4eH/6enp/+zs7P/r6+v/ODg4awAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtLS327u7vrampqLWhoaFvb29v+39/f/+Li4v/r6+v/6urq/0pK + SnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLS0tmra2t9BQUFFsmJiZz1dXV/OTk5P/g4OD/5OTk/+jo + 6P9sbGzHAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiHs7Ozvetra3/xMTE/97e3v/k5OT/5ubm/+fn + 5//g4OD/4uLi/2pqasMAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAACSkpJ22NjY/uHh4f/j4+P/5OTk/+Xl + 5f/h4eH/xsbG/+bm5v/o6Oj/bm5uvwAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAL+/v1/Z2dnd3t7e/t7e + 3vzJycn2uru6/9fY1//Y2dj/6enp/+rq6v9wcHC8AAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAZGR + kRaNjY0Sf4B/Mn5+fnXDxMPq29vb/9zc3P/r6+v/7Ozs/3FxcbkAAAAdAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAQEBADoKCgsN3d3fze3t7/4OHg/+7u7v/u7u7/cnJytgAAABoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3NwK/v7+DxcXF1+Li4v/l5eX/8PDw//Hx8f9WVlaFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLTrn5+f/5+fn/+np6f/z8/P/gYGBogAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJiYKt7e3suTk5PXs7Oz/7e7t/39/ + f50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoqKhc2tras9vb + 27xeXl48//8AAOH/AADAfwAAgH8AAIB/AACwfwAAsD8AAIAfAADADwAA4AcAAP8DAAD/AQAA/4AAAP/g + AAD/4AAA//kAAA== +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_FileSign.vb b/VECTO/GUI/F_FileSign.vb new file mode 100644 index 0000000000000000000000000000000000000000..4a93a9ee57e52b1422fc2ae3db9ab25ba2eb5ef3 --- /dev/null +++ b/VECTO/GUI/F_FileSign.vb @@ -0,0 +1,232 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms + +''' <summary> +''' Create/Verify signature files (.vsig). +''' </summary> +''' <remarks></remarks> +Public Class F_FileSign + + 'Create signature file + Private Sub BtSign_Click(sender As System.Object, e As System.EventArgs) Handles BtSign.Click + Dim lv0 As ListViewItem + Dim MainDir As String + + If Me.lvFiles.Items.Count = 0 Then + MsgBox("No files selected!", MsgBoxStyle.Critical) + Exit Sub + End If + + If Trim(Me.TbSigFile.Text) = "" Then + MsgBox("No signature file path defined!", MsgBoxStyle.Critical) + Exit Sub + End If + + If IO.File.Exists(Me.TbSigFile.Text) Then + If MsgBox("Overwrite existing signature file?", MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub + End If + + ClearForm(False) + + + MainDir = fPATH(Me.TbSigFile.Text) + + + Lic.FileSigning.NewFile() + Lic.FileSigning.Mode = vectolic.cFileSigning.tMode.Manual + + + For Each lv0 In Me.lvFiles.Items + Lic.FileSigning.AddFile(fFileRepl(lv0.SubItems(0).Text, MainDir)) + lv0.SubItems(1).Text = "" + lv0.ForeColor = Color.Black + Next + + If Lic.FileSigning.WriteSigFile(Me.TbSigFile.Text, LicSigAppCode) Then + Me.LbStatus.Text = "Signature file created successfully" + Me.LbStatus.ForeColor = Color.DarkGreen + Else + Me.LbStatus.Text = "Fail to create signature file! " & Lic.FileSigning.ErrorMsg + Me.LbStatus.ForeColor = Color.Red + End If + + Me.TbLicStr.Text = Lic.FileSigning.CreatorLicStr + Me.TbPubKey.Text = Lic.FileSigning.PubKey + Me.LbMode.Text = Lic.FileSigning.ModeConv(Lic.FileSigning.Mode) + Me.LbDateStr.Text = Lic.FileSigning.DateStr + + If Lic.FileSigning.FilesOK.Count > 0 Then + For Each lv0 In Me.lvFiles.Items + lv0.SubItems(1).Text = Lic.FileSigning.FilesMsg(lv0.Index) + If Lic.FileSigning.FilesOK(lv0.Index) Then + lv0.ForeColor = Color.DarkGreen + Else + lv0.ForeColor = Color.Red + Exit For + End If + Next + End If + + + End Sub + + 'Verify existing signature file + Public Sub VerifySigFile() + Dim lv0 As ListViewItem + Dim i As Integer + + If Not IO.File.Exists(Me.TbSigFile.Text) Then + MsgBox("Signature file not found!", MsgBoxStyle.Critical) + Exit Sub + End If + + ClearForm(True) + + If Lic.FileSigning.ReadSigFile(Me.TbSigFile.Text, LicSigAppCode) Then + Me.LbStatus.Text = "File signature verified" + Me.LbStatus.ForeColor = Color.DarkGreen + Else + Me.LbStatus.Text = "ERROR! " & Lic.FileSigning.ErrorMsg + Me.LbStatus.ForeColor = Color.Red + End If + + Me.TbLicStr.Text = Lic.FileSigning.CreatorLicStr + Me.TbPubKey.Text = Lic.FileSigning.PubKey + Me.LbMode.Text = Lic.FileSigning.ModeConv(Lic.FileSigning.Mode) + If Lic.FileSigning.Mode = vectolic.cFileSigning.tMode.Auto Then + Me.LbMode.ForeColor = Color.DarkGreen + Else + Me.LbMode.ForeColor = Color.Red + End If + Me.LbDateStr.Text = Lic.FileSigning.DateStr + + For i = 0 To Lic.FileSigning.FilesOK.Count - 1 + lv0 = New ListViewItem(Lic.FileSigning.Files(i)) + lv0.SubItems.Add(Lic.FileSigning.FilesMsg(i)) + If Lic.FileSigning.FilesOK(i) Then + lv0.ForeColor = Color.DarkGreen + Else + lv0.ForeColor = Color.Red + End If + Me.lvFiles.Items.Add(lv0) + Next + + End Sub + + 'Clear form + Private Sub ClearForm(ByVal ClearFileList As Boolean) + If ClearFileList Then lvFiles.Items.Clear() + Me.TbLicStr.Text = "" + Me.TbPubKey.Text = "" + Me.LbMode.Text = "" + Me.LbDateStr.Text = "" + Me.LbStatus.Text = "" + Me.LbMode.ForeColor = Control.DefaultForeColor + Me.LbMode.BackColor = Control.DefaultBackColor + Me.LbStatus.ForeColor = Control.DefaultForeColor + Me.LbStatus.BackColor = Control.DefaultBackColor + End Sub + + +#Region "GUI Controls" + + Private Sub BtBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtBrowse.Click + Dim fb As New cFileBrowser("sig", False, True) + fb.Extensions = New String() {"vsig"} + + If fb.CustomDialog(Me.TbSigFile.Text, False, False, tFbExtMode.ForceExt, False, "vsig") Then + Me.TbSigFile.Text = fb.Files(0) + End If + + If IO.File.Exists(Me.TbSigFile.Text) Then + VerifySigFile() + End If + + End Sub + + Private Sub BtAddFLD_Click(sender As System.Object, e As System.EventArgs) Handles BtAddFLD.Click + AddFile() + End Sub + + Private Sub BtRemFLD_Click(sender As System.Object, e As System.EventArgs) Handles BtRemFLD.Click + RemoveFile() + End Sub + + Private Sub BtClose_Click(sender As System.Object, e As System.EventArgs) Handles BtClose.Click + Me.Close() + End Sub + + Private Sub BtClearList_Click(sender As System.Object, e As System.EventArgs) Handles BtClearList.Click + Me.lvFiles.Items.Clear() + End Sub + + Private Sub BtReload_Click(sender As System.Object, e As System.EventArgs) Handles BtReload.Click + VerifySigFile() + End Sub + + Private Sub lvFiles_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles lvFiles.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + RemoveFile() + End Select + End Sub + +#End Region + + 'Add File + Private Sub AddFile() + Dim lvi As ListViewItem + Dim fb As New cFileBrowser("xxx", False, True) + Dim str As String + + If fb.OpenDialog("", True) Then + + For Each str In fb.Files + + lvi = New ListViewItem(str) + lvi.SubItems.Add("") + lvi.ForeColor = Color.Black + + Me.lvFiles.Items.Add(lvi) + lvi.EnsureVisible() + + Me.lvFiles.Focus() + + Next + + End If + + End Sub + + 'Remove File + Private Sub RemoveFile() + Dim i0 As Int16 + + If Me.lvFiles.Items.Count = 0 Then Exit Sub + + If Me.lvFiles.SelectedItems.Count = 0 Then Me.lvFiles.Items(Me.lvFiles.Items.Count - 1).Selected = True + + i0 = Me.lvFiles.SelectedItems(0).Index + + Me.lvFiles.SelectedItems(0).Remove() + + If i0 < Me.lvFiles.Items.Count Then + Me.lvFiles.Items(i0).Selected = True + Me.lvFiles.Items(i0).EnsureVisible() + End If + + Me.lvFiles.Focus() + + End Sub + + +End Class diff --git a/VECTO/GUI/F_GBX.Designer.vb b/VECTO/GUI/F_GBX.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..49e8b154c9121c11c2300b75875fd63f5e219f3f --- /dev/null +++ b/VECTO/GUI/F_GBX.Designer.vb @@ -0,0 +1,904 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_GBX + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_GBX)) + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.LbStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.ButCancel = New System.Windows.Forms.Button() + Me.ButOK = New System.Windows.Forms.Button() + Me.TbTracInt = New System.Windows.Forms.TextBox() + Me.LvGears = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.TBI_getr = New System.Windows.Forms.TextBox() + Me.Label49 = New System.Windows.Forms.Label() + Me.Label33 = New System.Windows.Forms.Label() + Me.Label48 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.TbName = New System.Windows.Forms.TextBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.BtRemGear = New System.Windows.Forms.Button() + Me.GrGearShift = New System.Windows.Forms.GroupBox() + Me.PnTorqRes = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.TbTqResv = New System.Windows.Forms.TextBox() + Me.ChShiftInside = New System.Windows.Forms.CheckBox() + Me.TbShiftTime = New System.Windows.Forms.TextBox() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label13 = New System.Windows.Forms.Label() + Me.ChSkipGears = New System.Windows.Forms.CheckBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.TbStartAcc = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.TbStartSpeed = New System.Windows.Forms.TextBox() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.TbTqResvStart = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.PnTC = New System.Windows.Forms.Panel() + Me.Label17 = New System.Windows.Forms.Label() + Me.Label15 = New System.Windows.Forms.Label() + Me.Label14 = New System.Windows.Forms.Label() + Me.BtTCfileBrowse = New System.Windows.Forms.Button() + Me.TbTCfile = New System.Windows.Forms.TextBox() + Me.BtTCfileOpen = New System.Windows.Forms.Button() + Me.TbTCrefrpm = New System.Windows.Forms.TextBox() + Me.ChTCon = New System.Windows.Forms.CheckBox() + Me.Label16 = New System.Windows.Forms.Label() + Me.CbGStype = New System.Windows.Forms.ComboBox() + Me.BtAddGear = New System.Windows.Forms.Button() + Me.GroupBox4 = New System.Windows.Forms.GroupBox() + Me.Label32 = New System.Windows.Forms.Label() + Me.PnInertiaTI = New System.Windows.Forms.Panel() + Me.PicBox = New System.Windows.Forms.PictureBox() + Me.TbTCinertia = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label18 = New System.Windows.Forms.Label() + Me.ToolStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GrGearShift.SuspendLayout() + Me.PnTorqRes.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.CmOpenFile.SuspendLayout() + Me.GroupBox3.SuspendLayout() + Me.PnTC.SuspendLayout() + Me.GroupBox4.SuspendLayout() + Me.PnInertiaTI.SuspendLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(877, 25) + Me.ToolStrip1.TabIndex = 30 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtNew + ' + Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtNew.Image = Global.VECTO.My.Resources.Resources.blue_document_icon + Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtNew.Name = "ToolStripBtNew" + Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtNew.Text = "ToolStripButton1" + Me.ToolStripBtNew.ToolTipText = "New" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "ToolStripButton1" + Me.ToolStripBtOpen.ToolTipText = "Open..." + ' + 'ToolStripBtSave + ' + Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSave.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_icon + Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSave.Name = "ToolStripBtSave" + Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSave.Text = "ToolStripButton1" + Me.ToolStripBtSave.ToolTipText = "Save" + ' + 'ToolStripBtSaveAs + ' + Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSaveAs.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_as_icon + Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSaveAs.Text = "ToolStripButton1" + Me.ToolStripBtSaveAs.ToolTipText = "Save As..." + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripBtSendTo + ' + Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSendTo.Image = Global.VECTO.My.Resources.Resources.export_icon + Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSendTo.Text = "Send to Job Editor" + Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Help" + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 595) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(877, 22) + Me.StatusStrip1.SizingGrip = False + Me.StatusStrip1.TabIndex = 37 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'LbStatus + ' + Me.LbStatus.Name = "LbStatus" + Me.LbStatus.Size = New System.Drawing.Size(39, 17) + Me.LbStatus.Text = "Status" + ' + 'ButCancel + ' + Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButCancel.Location = New System.Drawing.Point(790, 569) + Me.ButCancel.Name = "ButCancel" + Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.TabIndex = 9 + Me.ButCancel.Text = "Cancel" + Me.ButCancel.UseVisualStyleBackColor = True + ' + 'ButOK + ' + Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButOK.Location = New System.Drawing.Point(709, 569) + Me.ButOK.Name = "ButOK" + Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.TabIndex = 8 + Me.ButOK.Text = "Save" + Me.ButOK.UseVisualStyleBackColor = True + ' + 'TbTracInt + ' + Me.TbTracInt.Location = New System.Drawing.Point(303, 3) + Me.TbTracInt.Name = "TbTracInt" + Me.TbTracInt.Size = New System.Drawing.Size(40, 20) + Me.TbTracInt.TabIndex = 5 + ' + 'LvGears + ' + Me.LvGears.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader4, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5}) + Me.LvGears.FullRowSelect = True + Me.LvGears.GridLines = True + Me.LvGears.HideSelection = False + Me.LvGears.Location = New System.Drawing.Point(6, 18) + Me.LvGears.MultiSelect = False + Me.LvGears.Name = "LvGears" + Me.LvGears.Size = New System.Drawing.Size(429, 183) + Me.LvGears.TabIndex = 2 + Me.LvGears.TabStop = False + Me.LvGears.UseCompatibleStateImageBehavior = False + Me.LvGears.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Gear" + Me.ColumnHeader1.Width = 40 + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "TC" + Me.ColumnHeader4.Width = 31 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Ratio" + Me.ColumnHeader2.Width = 55 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Loss Map or Efficiency [-]" + Me.ColumnHeader3.Width = 137 + ' + 'ColumnHeader5 + ' + Me.ColumnHeader5.Text = "Shift polygons" + Me.ColumnHeader5.Width = 97 + ' + 'TBI_getr + ' + Me.TBI_getr.Location = New System.Drawing.Point(53, 3) + Me.TBI_getr.Name = "TBI_getr" + Me.TBI_getr.Size = New System.Drawing.Size(57, 20) + Me.TBI_getr.TabIndex = 4 + ' + 'Label49 + ' + Me.Label49.AutoSize = True + Me.Label49.Location = New System.Drawing.Point(349, 6) + Me.Label49.Name = "Label49" + Me.Label49.Size = New System.Drawing.Size(18, 13) + Me.Label49.TabIndex = 2 + Me.Label49.Text = "[s]" + ' + 'Label33 + ' + Me.Label33.AutoSize = True + Me.Label33.Location = New System.Drawing.Point(116, 6) + Me.Label33.Name = "Label33" + Me.Label33.Size = New System.Drawing.Size(36, 13) + Me.Label33.TabIndex = 2 + Me.Label33.Text = "[kgm²]" + ' + 'Label48 + ' + Me.Label48.AutoSize = True + Me.Label48.Location = New System.Drawing.Point(195, 6) + Me.Label48.Name = "Label48" + Me.Label48.Size = New System.Drawing.Size(102, 13) + Me.Label48.TabIndex = 2 + Me.Label48.Text = "Traction Interruption" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(11, 6) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(36, 13) + Me.Label6.TabIndex = 2 + Me.Label6.Text = "Inertia" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(26, 85) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(87, 13) + Me.Label3.TabIndex = 42 + Me.Label3.Text = "Make and Model" + ' + 'TbName + ' + Me.TbName.Location = New System.Drawing.Point(119, 82) + Me.TbName.Name = "TbName" + Me.TbName.Size = New System.Drawing.Size(334, 20) + Me.TbName.TabIndex = 0 + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_GBX + Me.PictureBox1.Location = New System.Drawing.Point(12, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(441, 40) + Me.PictureBox1.TabIndex = 43 + Me.PictureBox1.TabStop = False + ' + 'BtRemGear + ' + Me.BtRemGear.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtRemGear.Location = New System.Drawing.Point(41, 207) + Me.BtRemGear.Name = "BtRemGear" + Me.BtRemGear.Size = New System.Drawing.Size(29, 23) + Me.BtRemGear.TabIndex = 3 + Me.BtRemGear.UseVisualStyleBackColor = True + ' + 'GrGearShift + ' + Me.GrGearShift.Controls.Add(Me.PnTorqRes) + Me.GrGearShift.Controls.Add(Me.ChShiftInside) + Me.GrGearShift.Controls.Add(Me.TbShiftTime) + Me.GrGearShift.Controls.Add(Me.Label12) + Me.GrGearShift.Controls.Add(Me.Label13) + Me.GrGearShift.Controls.Add(Me.ChSkipGears) + Me.GrGearShift.Controls.Add(Me.GroupBox2) + Me.GrGearShift.Location = New System.Drawing.Point(12, 377) + Me.GrGearShift.Name = "GrGearShift" + Me.GrGearShift.Size = New System.Drawing.Size(441, 182) + Me.GrGearShift.TabIndex = 6 + Me.GrGearShift.TabStop = False + Me.GrGearShift.Text = "Gear shift parameters" + ' + 'PnTorqRes + ' + Me.PnTorqRes.Controls.Add(Me.Label2) + Me.PnTorqRes.Controls.Add(Me.Label4) + Me.PnTorqRes.Controls.Add(Me.TbTqResv) + Me.PnTorqRes.Location = New System.Drawing.Point(230, 19) + Me.PnTorqRes.Name = "PnTorqRes" + Me.PnTorqRes.Size = New System.Drawing.Size(190, 32) + Me.PnTorqRes.TabIndex = 5 + ' + 'Label2 + ' + Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(10, 9) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(79, 13) + Me.Label2.TabIndex = 0 + Me.Label2.Text = "Torque reserve" + ' + 'Label4 + ' + Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(158, 9) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(21, 13) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "[%]" + ' + 'TbTqResv + ' + Me.TbTqResv.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbTqResv.Location = New System.Drawing.Point(95, 6) + Me.TbTqResv.Name = "TbTqResv" + Me.TbTqResv.Size = New System.Drawing.Size(57, 20) + Me.TbTqResv.TabIndex = 3 + ' + 'ChShiftInside + ' + Me.ChShiftInside.AutoSize = True + Me.ChShiftInside.Checked = True + Me.ChShiftInside.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChShiftInside.Location = New System.Drawing.Point(9, 27) + Me.ChShiftInside.Name = "ChShiftInside" + Me.ChShiftInside.Size = New System.Drawing.Size(195, 17) + Me.ChShiftInside.TabIndex = 3 + Me.ChShiftInside.Text = "Allow shift-up inside polygons (AMT)" + Me.ChShiftInside.UseVisualStyleBackColor = True + ' + 'TbShiftTime + ' + Me.TbShiftTime.Location = New System.Drawing.Point(325, 51) + Me.TbShiftTime.Name = "TbShiftTime" + Me.TbShiftTime.Size = New System.Drawing.Size(57, 20) + Me.TbShiftTime.TabIndex = 6 + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(388, 54) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(18, 13) + Me.Label12.TabIndex = 9 + Me.Label12.Text = "[s]" + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.Location = New System.Drawing.Point(227, 54) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(92, 13) + Me.Label13.TabIndex = 8 + Me.Label13.Text = "Minimum shift time" + ' + 'ChSkipGears + ' + Me.ChSkipGears.AutoSize = True + Me.ChSkipGears.Location = New System.Drawing.Point(9, 53) + Me.ChSkipGears.Name = "ChSkipGears" + Me.ChSkipGears.Size = New System.Drawing.Size(132, 17) + Me.ChSkipGears.TabIndex = 4 + Me.ChSkipGears.Text = "Skip Gears (MT, AMT)" + Me.ChSkipGears.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.TbStartAcc) + Me.GroupBox2.Controls.Add(Me.Label11) + Me.GroupBox2.Controls.Add(Me.TbStartSpeed) + Me.GroupBox2.Controls.Add(Me.Label9) + Me.GroupBox2.Controls.Add(Me.Label10) + Me.GroupBox2.Controls.Add(Me.TbTqResvStart) + Me.GroupBox2.Controls.Add(Me.Label8) + Me.GroupBox2.Controls.Add(Me.Label5) + Me.GroupBox2.Controls.Add(Me.Label7) + Me.GroupBox2.Location = New System.Drawing.Point(6, 77) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(429, 99) + Me.GroupBox2.TabIndex = 7 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Start Gear" + ' + 'TbStartAcc + ' + Me.TbStartAcc.Location = New System.Drawing.Point(209, 71) + Me.TbStartAcc.Name = "TbStartAcc" + Me.TbStartAcc.Size = New System.Drawing.Size(57, 20) + Me.TbStartAcc.TabIndex = 2 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(20, 74) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(173, 13) + Me.Label11.TabIndex = 0 + Me.Label11.Text = "Reference acceleration at clutch-in" + ' + 'TbStartSpeed + ' + Me.TbStartSpeed.Location = New System.Drawing.Point(209, 45) + Me.TbStartSpeed.Name = "TbStartSpeed" + Me.TbStartSpeed.Size = New System.Drawing.Size(57, 20) + Me.TbStartSpeed.TabIndex = 1 + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(20, 48) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(181, 13) + Me.Label9.TabIndex = 0 + Me.Label9.Text = "Reference vehicle speed at clutch-in" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(272, 74) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(34, 13) + Me.Label10.TabIndex = 0 + Me.Label10.Text = "[m/s²]" + ' + 'TbTqResvStart + ' + Me.TbTqResvStart.Location = New System.Drawing.Point(209, 19) + Me.TbTqResvStart.Name = "TbTqResvStart" + Me.TbTqResvStart.Size = New System.Drawing.Size(57, 20) + Me.TbTqResvStart.TabIndex = 0 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(272, 48) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(31, 13) + Me.Label8.TabIndex = 0 + Me.Label8.Text = "[m/s]" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(20, 22) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(79, 13) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "Torque reserve" + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(272, 22) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(21, 13) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "[%]" + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.PnTC) + Me.GroupBox3.Controls.Add(Me.ChTCon) + Me.GroupBox3.Location = New System.Drawing.Point(459, 440) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(414, 119) + Me.GroupBox3.TabIndex = 7 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Torque Converter" + ' + 'PnTC + ' + Me.PnTC.Controls.Add(Me.Label17) + Me.PnTC.Controls.Add(Me.Label18) + Me.PnTC.Controls.Add(Me.Label15) + Me.PnTC.Controls.Add(Me.TbTCinertia) + Me.PnTC.Controls.Add(Me.Label1) + Me.PnTC.Controls.Add(Me.Label14) + Me.PnTC.Controls.Add(Me.BtTCfileBrowse) + Me.PnTC.Controls.Add(Me.TbTCfile) + Me.PnTC.Controls.Add(Me.BtTCfileOpen) + Me.PnTC.Controls.Add(Me.TbTCrefrpm) + Me.PnTC.Location = New System.Drawing.Point(6, 39) + Me.PnTC.Name = "PnTC" + Me.PnTC.Size = New System.Drawing.Size(402, 72) + Me.PnTC.TabIndex = 36 + ' + 'Label17 + ' + Me.Label17.AutoSize = True + Me.Label17.Location = New System.Drawing.Point(0, 5) + Me.Label17.Name = "Label17" + Me.Label17.Size = New System.Drawing.Size(176, 13) + Me.Label17.TabIndex = 0 + Me.Label17.Text = "Torque converter characteristics file" + ' + 'Label15 + ' + Me.Label15.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label15.AutoSize = True + Me.Label15.Location = New System.Drawing.Point(185, 50) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(77, 13) + Me.Label15.TabIndex = 0 + Me.Label15.Text = "Reference rpm" + ' + 'Label14 + ' + Me.Label14.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label14.AutoSize = True + Me.Label14.Location = New System.Drawing.Point(341, 50) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(40, 13) + Me.Label14.TabIndex = 0 + Me.Label14.Text = "[1/min]" + ' + 'BtTCfileBrowse + ' + Me.BtTCfileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtTCfileBrowse.Location = New System.Drawing.Point(341, 19) + Me.BtTCfileBrowse.Name = "BtTCfileBrowse" + Me.BtTCfileBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtTCfileBrowse.TabIndex = 1 + Me.BtTCfileBrowse.TabStop = False + Me.BtTCfileBrowse.Text = "..." + Me.BtTCfileBrowse.UseVisualStyleBackColor = True + ' + 'TbTCfile + ' + Me.TbTCfile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbTCfile.Location = New System.Drawing.Point(0, 21) + Me.TbTCfile.Name = "TbTCfile" + Me.TbTCfile.Size = New System.Drawing.Size(335, 20) + Me.TbTCfile.TabIndex = 0 + ' + 'BtTCfileOpen + ' + Me.BtTCfileOpen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtTCfileOpen.Image = Global.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtTCfileOpen.Location = New System.Drawing.Point(379, 19) + Me.BtTCfileOpen.Name = "BtTCfileOpen" + Me.BtTCfileOpen.Size = New System.Drawing.Size(23, 23) + Me.BtTCfileOpen.TabIndex = 2 + Me.BtTCfileOpen.TabStop = False + Me.BtTCfileOpen.UseVisualStyleBackColor = True + ' + 'TbTCrefrpm + ' + Me.TbTCrefrpm.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbTCrefrpm.Location = New System.Drawing.Point(268, 47) + Me.TbTCrefrpm.Name = "TbTCrefrpm" + Me.TbTCrefrpm.Size = New System.Drawing.Size(67, 20) + Me.TbTCrefrpm.TabIndex = 3 + ' + 'ChTCon + ' + Me.ChTCon.AutoSize = True + Me.ChTCon.Checked = True + Me.ChTCon.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChTCon.Location = New System.Drawing.Point(9, 19) + Me.ChTCon.Name = "ChTCon" + Me.ChTCon.Size = New System.Drawing.Size(88, 17) + Me.ChTCon.TabIndex = 0 + Me.ChTCon.Text = "Installed (AT)" + Me.ChTCon.UseVisualStyleBackColor = True + ' + 'Label16 + ' + Me.Label16.AutoSize = True + Me.Label16.Location = New System.Drawing.Point(18, 111) + Me.Label16.Name = "Label16" + Me.Label16.Size = New System.Drawing.Size(95, 13) + Me.Label16.TabIndex = 45 + Me.Label16.Text = "Transmission Type" + ' + 'CbGStype + ' + Me.CbGStype.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbGStype.FormattingEnabled = True + Me.CbGStype.Location = New System.Drawing.Point(119, 108) + Me.CbGStype.Name = "CbGStype" + Me.CbGStype.Size = New System.Drawing.Size(227, 21) + Me.CbGStype.TabIndex = 1 + ' + 'BtAddGear + ' + Me.BtAddGear.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtAddGear.Location = New System.Drawing.Point(6, 207) + Me.BtAddGear.Name = "BtAddGear" + Me.BtAddGear.Size = New System.Drawing.Size(29, 23) + Me.BtAddGear.TabIndex = 3 + Me.BtAddGear.UseVisualStyleBackColor = True + ' + 'GroupBox4 + ' + Me.GroupBox4.Controls.Add(Me.Label32) + Me.GroupBox4.Controls.Add(Me.LvGears) + Me.GroupBox4.Controls.Add(Me.BtRemGear) + Me.GroupBox4.Controls.Add(Me.BtAddGear) + Me.GroupBox4.Location = New System.Drawing.Point(12, 135) + Me.GroupBox4.Name = "GroupBox4" + Me.GroupBox4.Size = New System.Drawing.Size(441, 236) + Me.GroupBox4.TabIndex = 46 + Me.GroupBox4.TabStop = False + Me.GroupBox4.Text = "Gears" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Location = New System.Drawing.Point(312, 212) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(123, 13) + Me.Label32.TabIndex = 35 + Me.Label32.Text = "Double-Click to edit gear" + ' + 'PnInertiaTI + ' + Me.PnInertiaTI.Controls.Add(Me.Label6) + Me.PnInertiaTI.Controls.Add(Me.TBI_getr) + Me.PnInertiaTI.Controls.Add(Me.Label33) + Me.PnInertiaTI.Controls.Add(Me.Label48) + Me.PnInertiaTI.Controls.Add(Me.Label49) + Me.PnInertiaTI.Controls.Add(Me.TbTracInt) + Me.PnInertiaTI.Location = New System.Drawing.Point(469, 406) + Me.PnInertiaTI.Name = "PnInertiaTI" + Me.PnInertiaTI.Size = New System.Drawing.Size(398, 30) + Me.PnInertiaTI.TabIndex = 47 + ' + 'PicBox + ' + Me.PicBox.BackColor = System.Drawing.Color.LightGray + Me.PicBox.Location = New System.Drawing.Point(459, 28) + Me.PicBox.Name = "PicBox" + Me.PicBox.Size = New System.Drawing.Size(406, 372) + Me.PicBox.TabIndex = 48 + Me.PicBox.TabStop = False + ' + 'TbTCinertia + ' + Me.TbTCinertia.Location = New System.Drawing.Point(47, 47) + Me.TbTCinertia.Name = "TbTCinertia" + Me.TbTCinertia.Size = New System.Drawing.Size(67, 20) + Me.TbTCinertia.TabIndex = 49 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(120, 50) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(36, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "[kgm²]" + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.Location = New System.Drawing.Point(5, 50) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(36, 13) + Me.Label18.TabIndex = 2 + Me.Label18.Text = "Inertia" + ' + 'F_GBX + ' + Me.AcceptButton = Me.ButOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButCancel + Me.ClientSize = New System.Drawing.Size(877, 617) + Me.Controls.Add(Me.PicBox) + Me.Controls.Add(Me.PnInertiaTI) + Me.Controls.Add(Me.GroupBox4) + Me.Controls.Add(Me.CbGStype) + Me.Controls.Add(Me.Label16) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.GrGearShift) + Me.Controls.Add(Me.GroupBox3) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.TbName) + Me.Controls.Add(Me.ButCancel) + Me.Controls.Add(Me.ButOK) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.ToolStrip1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "F_GBX" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "F_GBX" + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.GrGearShift.ResumeLayout(False) + Me.GrGearShift.PerformLayout() + Me.PnTorqRes.ResumeLayout(False) + Me.PnTorqRes.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.CmOpenFile.ResumeLayout(False) + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + Me.PnTC.ResumeLayout(False) + Me.PnTC.PerformLayout() + Me.GroupBox4.ResumeLayout(False) + Me.GroupBox4.PerformLayout() + Me.PnInertiaTI.ResumeLayout(False) + Me.PnInertiaTI.PerformLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtNew As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSave As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSaveAs As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripBtSendTo As System.Windows.Forms.ToolStripButton + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents LbStatus As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents ButCancel As System.Windows.Forms.Button + Friend WithEvents ButOK As System.Windows.Forms.Button + Friend WithEvents BtRemGear As System.Windows.Forms.Button + Friend WithEvents TbTracInt As System.Windows.Forms.TextBox + Friend WithEvents LvGears As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents TBI_getr As System.Windows.Forms.TextBox + Friend WithEvents Label49 As System.Windows.Forms.Label + Friend WithEvents Label33 As System.Windows.Forms.Label + Friend WithEvents Label48 As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents TbName As System.Windows.Forms.TextBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents GrGearShift As System.Windows.Forms.GroupBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents TbTqResvStart As System.Windows.Forms.TextBox + Friend WithEvents TbTqResv As System.Windows.Forms.TextBox + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents TbStartAcc As System.Windows.Forms.TextBox + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents TbStartSpeed As System.Windows.Forms.TextBox + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents TbShiftTime As System.Windows.Forms.TextBox + Friend WithEvents Label12 As System.Windows.Forms.Label + Friend WithEvents Label13 As System.Windows.Forms.Label + Friend WithEvents ChSkipGears As System.Windows.Forms.CheckBox + Friend WithEvents ChShiftInside As System.Windows.Forms.CheckBox + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents TbTCfile As System.Windows.Forms.TextBox + Friend WithEvents ChTCon As System.Windows.Forms.CheckBox + Friend WithEvents BtTCfileBrowse As System.Windows.Forms.Button + Friend WithEvents BtTCfileOpen As System.Windows.Forms.Button + Friend WithEvents TbTCrefrpm As System.Windows.Forms.TextBox + Friend WithEvents Label14 As System.Windows.Forms.Label + Friend WithEvents Label15 As System.Windows.Forms.Label + Friend WithEvents Label16 As System.Windows.Forms.Label + Friend WithEvents CbGStype As System.Windows.Forms.ComboBox + Friend WithEvents Label17 As System.Windows.Forms.Label + Friend WithEvents PnTC As System.Windows.Forms.Panel + Friend WithEvents PnTorqRes As System.Windows.Forms.Panel + Friend WithEvents BtAddGear As System.Windows.Forms.Button + Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox + Friend WithEvents Label32 As System.Windows.Forms.Label + Friend WithEvents PnInertiaTI As System.Windows.Forms.Panel + Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader + Friend WithEvents PicBox As System.Windows.Forms.PictureBox + Friend WithEvents TbTCinertia As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Label18 As System.Windows.Forms.Label +End Class diff --git a/VECTO/GUI/F_GBX.resx b/VECTO/GUI/F_GBX.resx new file mode 100644 index 0000000000000000000000000000000000000000..8ac13f8128e1ddce726490945a2f9072f2f94bcf --- /dev/null +++ b/VECTO/GUI/F_GBX.resx @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>117, 20</value> + </metadata> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>227, 22</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QLg6NsG/v7+AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///w3///9r////t////+X////7////+/////v////6////6/// + /8n///+b////Xf///xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4B1uDQEIil + di319/MQ////AQAAAAAAAAAAAAAAAAAAAAD///9N////6vLy8v+UlJT/SEhI/xoaGv8EBAT/BQUF/xQU + FP82Njb/ZGRk/6Kiov/p6en//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gudtI5FRHEmhMbUvS7+/v4CAAAAAAAAAAAAAAAA////VP////2ysrL/FRUV/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B7PDpJmOJS5s4aBnEjal8Wf39/A8AAAAAAAAAAP///xf////xq6ur/wICAv8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wIAAAAA////f+jo6P8ODg7/AAAA/wAA + AP8AAAD/FRUV/42Njf/Y2Nj/9/f3//7+/v8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+CQAAAAD////JgICA/wAA + AP8AAAD/AAAA/xoaGv/i4uL//////////////////////wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2QV4zy9fAg////Af// + //E2Njb/AAAA/wAAAP8AAAD/mpqa/////+X/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJqyilI1ZhbTNmYW/TZmF/82Zhf5P20hwMDP + tzj+/v4E/////g4ODv8AAAD/AAAA/wAAAP/k5OT/////Zf////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wLr7+cpX4ZFpTVmFfA2ZhX/NmYW/zZm + Fv42ZhfZh6N0ZPz9/BL+/v7+AQEB/wAAAP8AAAD/AAAA//r6+v////8b/////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+B7TGqEI6ahnMNmcV/DZn + Ff82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/v4ODg7/AAAA/wAAAP8AAAD/5+fn/////2L///////////// + //////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+vgZeppleTVm + FOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+8jg4OP8AAAD/AAAA/wAAAP+dnZ3/////5f// + /xwAAAAAAAAAAAAAAAAAAAAA////Qv///+L////i////4gAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+As/b + yDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5f8/PvPiIiI/wAAAP8AAAD/AAAA/xoa + Gv/j4+P/////6v///27///8h////S////63/////vb29/x0dHf//////AAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxeTq4Jfv7+//FhYW/wAA + AP8AAAD/AAAA/xUVFf+RkZH/3t7e//r6+v/t7e3/tLS0/1JSUv8AAAD/AAAA//////8AAAAAAAAAAAAA + AAAAAAAA////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf41ZhTdi6d5dv7+ + /uu9vb3/BwcH/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAA + AAAAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVm + FPVLdy6z7PDpZf7+/vjDw8P/ICAg/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yUl + Jf//////AAAAAAAAAAAAAAAA////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/TVmFdOctI1R/v7+RP///9/4+Pj/oKCg/1FRUf8gICD/BwcH/wQEBP8RERH/MzMz/2Zm + Zv+3t7f//f39/////9oAAAAAAAAAAAAAAAD+/v4CzdnFMURxJbo1ZhT4NWYU/zVmFP81ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP82ZxX/NWYU7mKISZ/s8ekn////CP///1////+u////3/////j////7////+/// + //v////u////zP///5n///9I////AgAAAAAAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39/QL9/v0C/f79Av3+ + /QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79AgAAAAD///8C5uziK1mBPqs0ZRPzNWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTezUPZ4tM12eLTNdni + 0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U12eLUNdrj1DXa49U1AAAAAP7+/givwqJGN2cWzjVm + FP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFfg1ZhThRHImz0Rx + JspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3LspIdCvKSXUsykt3Lsr//v8B9vj1HXSW + XoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZn + Ff42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/f7/ + /gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVmFP01ZhT/NWYU/zVm + FP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpqG/87axz/Omka/zpq + G/87axz//f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp3k1fhkWnNGUT8TVm + FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zhoGf85aRr/Omob/ztr + HP85aRr/Omob/ztrHP/j6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5Cq + flU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp + Gv86ahv/O2sc/zlpGv86ahv/O2sc/6zAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVmFP81ZhT9PWwdycPS + ujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdn + GP83Zxj/OWka/zpqG/86ahv/OWka/zpqG/86ahv/cpRchjRlE+Y1ZhT+NWYU/zVmFP81ZhT/NWYU/zVm + FPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhT/NmYV/zZm + F/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/85aRr/Omob/zpqG/9BbyK6NGUU9jVmFP01ZhT9NWYU/TVm + FP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZm + Ff02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/ThoGf06aRr9Omob/TZnFaE2ZxXINmcVyjZn + Fco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gUAAAAA/v7+A7rKrzA7ahuiNmcVyTZnFco2ZxXKN2cWyjdo + Fso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3KOmobyjtrHMo8ax3KscSkKrHE + pDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+AQAAAAAAAAAA8/bxC7bHqiqxxKQ1scSkNbHE + pDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPFpzWyxaY1s8WnNbPF + pzX///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAA////Av// + /wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////8Af//8AB/9+AAf+fAAH/jwAB/44AAf8GAAH/BgQB/gYEAf4C + BAH+AgPx/AABwfwAAAH4AQAB+ACAAfgAwAHwAHAH8AB//+AAP//gAAAAwAAAAMAAAADAIAAAgHAAAIBw + AAAAcAAAAPgAAAD4AAD///////////////8= +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_GBX.vb b/VECTO/GUI/F_GBX.vb new file mode 100644 index 0000000000000000000000000000000000000000..87c67b3c40d0bec9b8e2f4e4440339033bfd0a1a --- /dev/null +++ b/VECTO/GUI/F_GBX.vb @@ -0,0 +1,842 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Gearbox Editor +''' </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 + + '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 + + 'Initialise. + Private Sub F_GBX_Load(sender As Object, e As System.EventArgs) Handles Me.Load + + 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 + + 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 + + Init = True + + DeclInit() + + Changed = False + newGBX() + + End Sub + + 'Set generic values for Declaration mode. + Private Sub DeclInit() + Dim GStype As tGearbox + Dim lv0 As ListViewItem + + If Not Cfg.DeclMode Then Exit Sub + + Me.TBI_getr.Text = cDeclaration.GbInertia + + GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) + + 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 + + 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 ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub + + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub + + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + + If ChangeCheckCancel() Then Exit Sub + + 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 Not F_VECTO.Visible Then + JobDir = "" + F_VECTO.Show() + F_VECTO.VECTOnew() + Else + F_VECTO.WindowState = FormWindowState.Normal + End If + + 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 + +#End Region + + 'New file + Private Sub newGBX() + Dim lvi As ListViewItem + + If ChangeCheckCancel() Then Exit Sub + + Me.CbGStype.SelectedIndex = 0 + + Me.TbName.Text = "" + Me.TbTracInt.Text = "" + Me.TBI_getr.Text = "" + + Me.LvGears.Items.Clear() + + lvi = New ListViewItem("Axle") + lvi.SubItems.Add("-") + lvi.SubItems.Add("0") + lvi.SubItems.Add("0") + 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)) + lv0.SubItems.Add(GBX0.gsFile(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 + 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 + + 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 + + fbGBX.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + + Changed = False + + Return True + + End Function + +#Region "Change Events" + + '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 + + ' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts + Private Function ChangeCheckCancel() As Boolean + + 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 + + Else + + Return False + + End If + + End Function + + Private Sub TbName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbName.TextChanged + 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 TbTracInt_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTracInt.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 ChShiftInside_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChShiftInside.CheckedChanged + CheckEnableTorqRes() + Change() + End Sub + + Private Sub TbTqResv_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResv.TextChanged + Change() + End Sub + + Private Sub TbShiftTime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbShiftTime.TextChanged + Change() + End Sub + + Private Sub TbTqResvStart_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResvStart.TextChanged + Change() + End Sub + + Private Sub TbStartSpeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartSpeed.TextChanged + Change() + End Sub + + Private Sub TbStartAcc_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartAcc.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 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 + + '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 + + Change() + + GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) + + Me.ChShiftInside.Enabled = (GStype = tGearbox.Custom) + Me.ChSkipGears.Enabled = (GStype = tGearbox.Custom) + Me.ChTCon.Enabled = (GStype = tGearbox.Custom) + + 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 + +#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) + GearDia.PnShiftPoly.Enabled = (Not Cfg.DeclMode And Me.LvGears.SelectedIndices(0) > 0) + 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 + Else + GearDia.ChIsTCgear.Checked = False + GearDia.TbShiftPolyFile.Text = "" + End If + + 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 + + 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 + + UpdatePic() + Change() + + Else + + If Me.LvGears.SelectedItems(0).SubItems(2).Text = "" Then RemoveGear(True) + + End If + + If GearDia.NextGear Then + If Me.LvGears.Items.Count - 1 = Me.LvGears.SelectedIndices(0) Then AddGear() + + Me.LvGears.Items(Me.LvGears.SelectedIndices(0) + 1).Selected = True + End If + + Loop Until Not GearDia.NextGear + + End Sub + + '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.SubItems.Add("") + Me.LvGears.Items.Add(lvi) + + lvi.EnsureVisible() + + Me.LvGears.Focus() + + 'Change() => NO! Change() is already handled by EditGear + + End 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.Items.Count < 2 Then Exit Sub + + If Me.LvGears.SelectedItems.Count = 0 Then Me.LvGears.Items(Me.LvGears.Items.Count - 1).Selected = True + + i0 = Me.LvGears.SelectedItems(0).Index + + If i0 = 0 Then Exit Sub 'Must not remove axle + + Me.LvGears.SelectedItems(0).Remove() + + 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 + + If i0 < Me.LvGears.Items.Count Then + Me.LvGears.Items(i0).Selected = True + Me.LvGears.Items(i0).EnsureVisible() + End If + + Me.LvGears.Focus() + UpdatePic() + + If Not NoChange Then Change() + + End Sub + + +#End Region + + +#Region "Open File Context Menu" + + Private CmFiles As String() + + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + 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 + 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 + +#End Region + + + Private Sub UpdatePic() + + Dim f As cFile_V3 = Nothing + Dim path As String + Dim lM As List(Of Single) + Dim lup As List(Of Single) + Dim ldown As List(Of Single) + 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 + + Me.PicBox.Image = Nothing + + Try + + 'Read Files + If Me.LvGears.Items.Count > 1 Then + + If Me.LvGears.SelectedItems.Count > 0 Then + path = fFileRepl(Me.LvGears.SelectedItems(0).SubItems(4).Text, fPATH(GbxFile)) + Gear = Me.LvGears.SelectedIndices(0) + Else + path = fFileRepl(Me.LvGears.Items(1).SubItems(4).Text, fPATH(GbxFile)) + Gear = 1 + End If + + f = New cFile_V3 + If Not f.OpenRead(path) Then Exit Sub + + 'Header + f.ReadLine() + + Else + + Exit Sub + + End If + + Catch ex As Exception + Exit Sub + + End Try + + Try + lM = New List(Of Single) + lup = New List(Of Single) + ldown = New List(Of Single) + + Do While Not f.EndOfFile + line = f.ReadLine + lM.Add(CSng(line(0))) + lup.Add(CSng(line(1))) + ldown.Add(CSng(line(2))) + Loop + + f.Close() + + Catch ex As Exception + f.Close() + Exit Sub + End Try + + If lM.Count < 2 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 + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(lup, lM) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Upshift curve" + MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(ldown, lM) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Downshift curve" + MyChart.Series.Add(s) + + a.Name = "main" + + 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 + + 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 + + a.AxisX.Minimum = 300 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 + + a.BackColor = Color.GhostWhite + + MyChart.ChartAreas.Add(a) + + MyChart.Titles.Add("Gear " & Gear & " shift polygons") + MyChart.Titles(0).Font = New Font("Helvetica", 12) + + 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)) + + 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 + + '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 + + Private Sub CheckGearTC() + Dim lv0 As ListViewItem + + If Not Init Then Exit Sub + + For Each lv0 In Me.LvGears.Items + + If lv0.SubItems(0).Text = "Axle" Then Continue For + + 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_GBX_GearDlog.Designer.vb b/VECTO/GUI/F_GBX_GearDlog.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..f948477a13997a4a1391d3493a65da158ac00abf --- /dev/null +++ b/VECTO/GUI/F_GBX_GearDlog.Designer.vb @@ -0,0 +1,245 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_GBX_GearDlog + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.TbGear = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.TbRatio = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.TbMapPath = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.BtBrowse = New System.Windows.Forms.Button() + Me.BtNext = New System.Windows.Forms.Button() + Me.ChIsTCgear = New System.Windows.Forms.CheckBox() + Me.TbShiftPolyFile = New System.Windows.Forms.TextBox() + Me.BtShiftPolyBrowse = New System.Windows.Forms.Button() + Me.Label4 = New System.Windows.Forms.Label() + Me.PnShiftPoly = New System.Windows.Forms.Panel() + Me.TableLayoutPanel1.SuspendLayout() + Me.PnShiftPoly.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(380, 146) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'TbGear + ' + Me.TbGear.Location = New System.Drawing.Point(48, 6) + Me.TbGear.Name = "TbGear" + Me.TbGear.ReadOnly = True + Me.TbGear.Size = New System.Drawing.Size(37, 20) + Me.TbGear.TabIndex = 1 + Me.TbGear.TabStop = False + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 9) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(30, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "Gear" + ' + 'TbRatio + ' + Me.TbRatio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbRatio.Location = New System.Drawing.Point(149, 6) + Me.TbRatio.Name = "TbRatio" + Me.TbRatio.Size = New System.Drawing.Size(66, 20) + Me.TbRatio.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(111, 9) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(32, 13) + Me.Label2.TabIndex = 4 + Me.Label2.Text = "Ratio" + ' + 'TbMapPath + ' + Me.TbMapPath.Location = New System.Drawing.Point(12, 61) + Me.TbMapPath.Name = "TbMapPath" + Me.TbMapPath.Size = New System.Drawing.Size(476, 20) + Me.TbMapPath.TabIndex = 5 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(12, 45) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(126, 13) + Me.Label3.TabIndex = 7 + Me.Label3.Text = "Loss Map or Efficiency [-]" + ' + 'BtBrowse + ' + Me.BtBrowse.Location = New System.Drawing.Point(494, 59) + Me.BtBrowse.Name = "BtBrowse" + Me.BtBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtBrowse.TabIndex = 8 + Me.BtBrowse.Text = "..." + Me.BtBrowse.UseVisualStyleBackColor = True + ' + 'BtNext + ' + Me.BtNext.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtNext.Location = New System.Drawing.Point(307, 149) + Me.BtNext.Name = "BtNext" + Me.BtNext.Size = New System.Drawing.Size(67, 23) + Me.BtNext.TabIndex = 9 + Me.BtNext.Text = "&Next" + Me.BtNext.UseVisualStyleBackColor = True + ' + 'ChIsTCgear + ' + Me.ChIsTCgear.AutoSize = True + Me.ChIsTCgear.Location = New System.Drawing.Point(236, 8) + Me.ChIsTCgear.Name = "ChIsTCgear" + Me.ChIsTCgear.Size = New System.Drawing.Size(241, 17) + Me.ChIsTCgear.TabIndex = 10 + Me.ChIsTCgear.Text = "Torque Conveter active (lock-up clutch open)" + Me.ChIsTCgear.UseVisualStyleBackColor = True + ' + 'TbShiftPolyFile + ' + Me.TbShiftPolyFile.Location = New System.Drawing.Point(2, 17) + Me.TbShiftPolyFile.Name = "TbShiftPolyFile" + Me.TbShiftPolyFile.Size = New System.Drawing.Size(476, 20) + Me.TbShiftPolyFile.TabIndex = 12 + ' + 'BtShiftPolyBrowse + ' + Me.BtShiftPolyBrowse.Location = New System.Drawing.Point(484, 15) + Me.BtShiftPolyBrowse.Name = "BtShiftPolyBrowse" + Me.BtShiftPolyBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtShiftPolyBrowse.TabIndex = 13 + Me.BtShiftPolyBrowse.TabStop = False + Me.BtShiftPolyBrowse.Text = "..." + Me.BtShiftPolyBrowse.UseVisualStyleBackColor = True + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(2, 1) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(89, 13) + Me.Label4.TabIndex = 11 + Me.Label4.Text = "Shift polygons file" + ' + 'PnShiftPoly + ' + Me.PnShiftPoly.Controls.Add(Me.TbShiftPolyFile) + Me.PnShiftPoly.Controls.Add(Me.BtShiftPolyBrowse) + Me.PnShiftPoly.Controls.Add(Me.Label4) + Me.PnShiftPoly.Location = New System.Drawing.Point(10, 90) + Me.PnShiftPoly.Name = "PnShiftPoly" + Me.PnShiftPoly.Size = New System.Drawing.Size(525, 46) + Me.PnShiftPoly.TabIndex = 14 + ' + 'F_GBX_GearDlog + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(538, 187) + Me.Controls.Add(Me.PnShiftPoly) + Me.Controls.Add(Me.ChIsTCgear) + Me.Controls.Add(Me.BtNext) + Me.Controls.Add(Me.BtBrowse) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.TbMapPath) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.TbRatio) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TbGear) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_GBX_GearDlog" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Edit Gears" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.PnShiftPoly.ResumeLayout(False) + Me.PnShiftPoly.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents TbGear As System.Windows.Forms.TextBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TbRatio As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents TbMapPath As System.Windows.Forms.TextBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents BtBrowse As System.Windows.Forms.Button + Friend WithEvents BtNext As System.Windows.Forms.Button + Friend WithEvents ChIsTCgear As System.Windows.Forms.CheckBox + Friend WithEvents TbShiftPolyFile As System.Windows.Forms.TextBox + Friend WithEvents BtShiftPolyBrowse As System.Windows.Forms.Button + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents PnShiftPoly As System.Windows.Forms.Panel + +End Class diff --git a/VECTO/GUI/F_GBX_GearDlog.resx b/VECTO/GUI/F_GBX_GearDlog.resx new file mode 100644 index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04 --- /dev/null +++ b/VECTO/GUI/F_GBX_GearDlog.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_GBX_GearDlog.vb b/VECTO/GUI/F_GBX_GearDlog.vb new file mode 100644 index 0000000000000000000000000000000000000000..08fa6dd776dcb17e9d969b75cf2f76a328159b0f --- /dev/null +++ b/VECTO/GUI/F_GBX_GearDlog.vb @@ -0,0 +1,74 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports System.Windows.Forms + +''' <summary> +''' Gear Editor (Vehicle Editor sub-dialog) +''' </summary> +''' <remarks></remarks> +Public Class F_GBX_GearDlog + + Public NextGear As Boolean + Public GbxPath As String + + 'Save and Close + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + + If Not IsNumeric(Me.TbRatio.Text) Then + MsgBox("Gear ratio is invalid!") + Me.TbRatio.Focus() + Me.TbRatio.SelectAll() + Exit Sub + End If + + NextGear = False + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 'Cancel + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + NextGear = False + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + 'Next Gear button - Close dialog and open for next gear + Private Sub BtNext_Click(sender As System.Object, e As System.EventArgs) Handles BtNext.Click + + If Not IsNumeric(Me.TbRatio.Text) Then + MsgBox("Gear ratio is invalid!") + Me.TbRatio.Focus() + Me.TbRatio.SelectAll() + Exit Sub + End If + + NextGear = True + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 'Browse for transmission loss map + Private Sub BtBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtBrowse.Click + If fbTLM.OpenDialog(fFileRepl(Me.TbMapPath.Text, GbxPath)) Then + Me.TbMapPath.Text = fFileWoDir(fbTLM.Files(0), GbxPath) + End If + End Sub + + 'Browse for shift polygons file + Private Sub BtShiftPolyBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtShiftPolyBrowse.Click + If fbGBS.OpenDialog(fFileRepl(Me.TbShiftPolyFile.Text, GbxPath)) Then + Me.TbShiftPolyFile.Text = fFileWoDir(fbGBS.Files(0), GbxPath) + End If + End Sub + +End Class diff --git a/VECTO/GUI/F_Graph.Designer.vb b/VECTO/GUI/F_Graph.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..363249425b64d850f29720fcd3014620f54c6fb8 --- /dev/null +++ b/VECTO/GUI/F_Graph.Designer.vb @@ -0,0 +1,345 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_Graph + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_Graph)) + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.BtRemCh = New System.Windows.Forms.Button() + Me.BtAddCh = New System.Windows.Forms.Button() + Me.ListView1 = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.CbXaxis = New System.Windows.Forms.ComboBox() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.Label1 = New System.Windows.Forms.Label() + Me.TbXmin = New System.Windows.Forms.TextBox() + Me.TbXmax = New System.Windows.Forms.TextBox() + Me.BtReset = New System.Windows.Forms.Button() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.BtZoomIn = New System.Windows.Forms.Button() + Me.BtZoomOut = New System.Windows.Forms.Button() + Me.BtMoveL = New System.Windows.Forms.Button() + Me.BtMoveR = New System.Windows.Forms.Button() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.BackColor = System.Drawing.Color.LightGray + Me.PictureBox1.Location = New System.Drawing.Point(262, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(984, 332) + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.BtRemCh) + Me.GroupBox1.Controls.Add(Me.BtAddCh) + Me.GroupBox1.Controls.Add(Me.ListView1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 28) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(244, 362) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Channels" + ' + 'BtRemCh + ' + Me.BtRemCh.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtRemCh.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtRemCh.Location = New System.Drawing.Point(41, 333) + Me.BtRemCh.Name = "BtRemCh" + Me.BtRemCh.Size = New System.Drawing.Size(29, 23) + Me.BtRemCh.TabIndex = 2 + Me.BtRemCh.UseVisualStyleBackColor = True + ' + 'BtAddCh + ' + Me.BtAddCh.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtAddCh.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtAddCh.Location = New System.Drawing.Point(6, 333) + Me.BtAddCh.Name = "BtAddCh" + Me.BtAddCh.Size = New System.Drawing.Size(29, 23) + Me.BtAddCh.TabIndex = 1 + Me.BtAddCh.UseVisualStyleBackColor = True + ' + 'ListView1 + ' + Me.ListView1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListView1.BackColor = System.Drawing.Color.GhostWhite + Me.ListView1.CheckBoxes = True + Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader3}) + Me.ListView1.FullRowSelect = True + Me.ListView1.GridLines = True + Me.ListView1.Location = New System.Drawing.Point(6, 19) + Me.ListView1.Name = "ListView1" + Me.ListView1.Size = New System.Drawing.Size(232, 308) + Me.ListView1.TabIndex = 0 + Me.ListView1.UseCompatibleStateImageBehavior = False + Me.ListView1.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Channel" + Me.ColumnHeader1.Width = 184 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Y Axis" + Me.ColumnHeader3.Width = 42 + ' + 'CbXaxis + ' + Me.CbXaxis.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.CbXaxis.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbXaxis.FormattingEnabled = True + Me.CbXaxis.Items.AddRange(New Object() {"Distance", "Time"}) + Me.CbXaxis.Location = New System.Drawing.Point(325, 369) + Me.CbXaxis.Name = "CbXaxis" + Me.CbXaxis.Size = New System.Drawing.Size(90, 21) + Me.CbXaxis.TabIndex = 1 + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtOpen, Me.ToolStripButton3, Me.ToolStripButton2, Me.ToolStripSeparator1, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(1258, 25) + Me.ToolStrip1.TabIndex = 31 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "ToolStripButton1" + Me.ToolStripBtOpen.ToolTipText = "Open .vmod file" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.Image = Global.VECTO.My.Resources.Resources.application_add_icon + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton3.Text = "ToolStripButton3" + Me.ToolStripButton3.ToolTipText = "New window" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.Image = Global.VECTO.My.Resources.Resources.Refresh_icon + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton2.Text = "ToolStripButton2" + Me.ToolStripButton2.ToolTipText = "Reload file" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Help" + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(283, 372) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(36, 13) + Me.Label1.TabIndex = 32 + Me.Label1.Text = "X Axis" + ' + 'TbXmin + ' + Me.TbXmin.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.TbXmin.Location = New System.Drawing.Point(497, 369) + Me.TbXmin.Name = "TbXmin" + Me.TbXmin.Size = New System.Drawing.Size(71, 20) + Me.TbXmin.TabIndex = 2 + ' + 'TbXmax + ' + Me.TbXmax.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.TbXmax.Location = New System.Drawing.Point(609, 369) + Me.TbXmax.Name = "TbXmax" + Me.TbXmax.Size = New System.Drawing.Size(71, 20) + Me.TbXmax.TabIndex = 3 + ' + 'BtReset + ' + Me.BtReset.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtReset.Location = New System.Drawing.Point(691, 367) + Me.BtReset.Name = "BtReset" + Me.BtReset.Size = New System.Drawing.Size(75, 23) + Me.BtReset.TabIndex = 4 + Me.BtReset.Text = "Reset" + Me.BtReset.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(467, 372) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(24, 13) + Me.Label2.TabIndex = 35 + Me.Label2.Text = "Min" + ' + 'Label3 + ' + Me.Label3.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(576, 372) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(27, 13) + Me.Label3.TabIndex = 35 + Me.Label3.Text = "Max" + ' + 'BtZoomIn + ' + Me.BtZoomIn.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtZoomIn.Location = New System.Drawing.Point(1103, 366) + Me.BtZoomIn.Name = "BtZoomIn" + Me.BtZoomIn.Size = New System.Drawing.Size(28, 23) + Me.BtZoomIn.TabIndex = 36 + Me.BtZoomIn.Text = "+" + Me.BtZoomIn.UseVisualStyleBackColor = True + ' + 'BtZoomOut + ' + Me.BtZoomOut.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtZoomOut.Location = New System.Drawing.Point(1137, 366) + Me.BtZoomOut.Name = "BtZoomOut" + Me.BtZoomOut.Size = New System.Drawing.Size(28, 23) + Me.BtZoomOut.TabIndex = 36 + Me.BtZoomOut.Text = "-" + Me.BtZoomOut.UseVisualStyleBackColor = True + ' + 'BtMoveL + ' + Me.BtMoveL.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtMoveL.Location = New System.Drawing.Point(1184, 366) + Me.BtMoveL.Name = "BtMoveL" + Me.BtMoveL.Size = New System.Drawing.Size(28, 23) + Me.BtMoveL.TabIndex = 36 + Me.BtMoveL.Text = "<" + Me.BtMoveL.UseVisualStyleBackColor = True + ' + 'BtMoveR + ' + Me.BtMoveR.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtMoveR.Location = New System.Drawing.Point(1218, 366) + Me.BtMoveR.Name = "BtMoveR" + Me.BtMoveR.Size = New System.Drawing.Size(28, 23) + Me.BtMoveR.TabIndex = 36 + Me.BtMoveR.Text = ">" + Me.BtMoveR.UseVisualStyleBackColor = True + ' + 'F_Graph + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1258, 400) + Me.Controls.Add(Me.BtZoomOut) + Me.Controls.Add(Me.BtMoveR) + Me.Controls.Add(Me.BtMoveL) + Me.Controls.Add(Me.BtZoomIn) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.BtReset) + Me.Controls.Add(Me.TbXmax) + Me.Controls.Add(Me.TbXmin) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.CbXaxis) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.PictureBox1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(1000, 300) + Me.Name = "F_Graph" + Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show + Me.Text = "Graph" + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox1.ResumeLayout(False) + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents ListView1 As System.Windows.Forms.ListView + Friend WithEvents BtRemCh As System.Windows.Forms.Button + Friend WithEvents BtAddCh As System.Windows.Forms.Button + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton + Friend WithEvents CbXaxis As System.Windows.Forms.ComboBox + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TbXmin As System.Windows.Forms.TextBox + Friend WithEvents TbXmax As System.Windows.Forms.TextBox + Friend WithEvents BtReset As System.Windows.Forms.Button + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton + Friend WithEvents BtZoomIn As System.Windows.Forms.Button + Friend WithEvents BtZoomOut As System.Windows.Forms.Button + Friend WithEvents BtMoveL As System.Windows.Forms.Button + Friend WithEvents BtMoveR As System.Windows.Forms.Button +End Class diff --git a/VECTO/GUI/F_Graph.resx b/VECTO/GUI/F_Graph.resx new file mode 100644 index 0000000000000000000000000000000000000000..d7604811a3b9b217c9c5609df2aedcfa0608e155 --- /dev/null +++ b/VECTO/GUI/F_Graph.resx @@ -0,0 +1,211 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAJCAAAAEAIAAoEwAAFgAAACgAAAAkAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoSyYmJvYjIiL9JCMj/SQj + I/0iISH9JCMj/SQjI/0kIyP9JCQk/SQjI/0kIyP9JCMj/R8fHv0kIyP9JCMj/SQkJP0hISH9JCMj/SQj + I/0jIyL9JSUl/SQjI/0kIyP9EhIS/QcHB4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFxcXSx4eHvgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISAg/wAAAIoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXSx4eHvgAAAD/9u3n/93X0v+koJz/+PHs//jx + 7P/Ry8b/sayp//jx7P/48ez/3NXR/6ahnv/48ez/+PHs/8/Jxf+yrar/+PHs//jx7P/Cvbn/v7q2//jx + 7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXSx4e + HfgAAAD/0amH/8aslv+loJz/+PHs//jx7P/Ry8b/sayp//jx7P/48ez/3NXR/6ahnv/48ez/+PHs/8/J + xf+yrar/+PHs//jx7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAGhoaTDctI/kAAAD/u35K/7d+Tv+4m4P/9/Dr//jx7P/Ry8b/r6mk/+XO + u//hxq//1Mi+/6ahnv/48ez/+PHs/8/Jxf+yrar/+PHs//jx7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAA + AIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiTzIpIfoAAAD/u35K/7t+ + Sv+/hlb/3cCn//fw6//Uw7b/rIZm/72DUf+7fkv/tY1r/6ael//48ez/+PHs/8/Jxf+yrar/+PHs//jx + 7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8BTE1MWyMjIvsAAAD/tH9S/7t+Sv+7fkr/v4ZW/9Gohv/HlWv/un1J/7t+Sv+7fkr/uX1J/7OT + ef++uLT/vrm1/52Zlv+MiIX/vrm1/765tf+Wko//lJCN/765tf8AAAD/HR0c/wAAAIoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//v4CU1ZRbB8fHv0AAAD/1ryn/8OOYf+7fkr/u35K/7t/ + S/+7fkr/u35K/7t+Sv+7fkr/u35K/7iBUv+1n4z/yMO//6SfnP+Tjov/yMO//8jDv/+cl5T/mpWS/8jD + v/8AAAD/ICAf/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4MUFpJhR4f + Hf4AAAD/9/Dr/+DGsP+zflL/u35K/7t+Sv+7fkr/voVV/8+kgP/DjV//u35K/7t+Sv/KnHT/7t/S/8/J + xf+yrar/+PHs//jx7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wLr7+cpQloyvx4fHf8AAAD/+PHs/93X0v+dhHD/xJBk/7yATf+1h1//vaWR//fv + 6f/dv6b/vIFO/7t+Sv+7fkr/1K+P/83GwP+yrar/+PHs//jx7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAA + AIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ge0xqhCLk0Y2x4gHf8AAAD/+PHs/93X + 0v+koJz/69nK/+TNuf/JvLL/sayp//jx7P/17OX/06yL/7t+Sv+7fkr/vYJQ/7aagv+yrar/+PHs//jx + 7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Afj6 + +Bl6mmV5K0wU6h4gHf8AAAD/+PHs/93X0v+koJz/+PHs//jx7P/Ry8b/sayp//jx7P/48ez/5dXI/65/ + V/+7fkr/u35K/656Tv/BrZ3/+PHs//jx7P/Cvbn/v7q2//jx7P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+As/byDBGcyi3K04U+R4fHf8AAAD/7ebh/9LMyP+empf/7ebh/+3m + 4f/GwLz/qKOg/+3m4f/t5uH/0cvH/5J7aP+9hVX/u35K/7t+Sv/MoHv/6tzS/+3m4f+4s6//ua+o/+PK + tf8AAAD/KSQg/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJavhVQ0ZRPUMVMZ/h0f + HP8AAAD/m5eU/5KOi/9fXVv/m5eU/5uXlP+KhoP/bGln/5uXlP+bl5T/ko2L/2FeXP+tjXL/un5K/7t+ + Sv+6fUn/qYZo/5uVkf+LeGf/pHpX/7yATf8AAAD/Wj0j/wEAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8C6O7lK1uDQao1ZRTyLE4U/x4fHf8AAAD/9e7p/9vV0P+jnpv/9e7p//Xu6f/OycT/r6qn//Xu + 6f/17un/2dPP/6SgnP/y59//0aiG/7t+Sv+7fkr/vYJQ/8ueeP+/iFr/u35K/7t+Sv8AAAD/Z0Uo/wMB + AYoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9LE4U/x4fHf8AAAD/+PHs/93X + 0v+koJz/+PHs//jx7P/Ry8b/sayp//jx7P/48ez/3NXR/6ahnv/48ez/69rL/8iYb/+7fkr/u35K/7t+ + Sv+7fkr/u35K/7t/S/8AAAD/NCYb/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+fcbdpdhfjRl + E+M1ZhT+LE4U/x4fHf8AAAD/+PHs/93X0v+koJz/+PHs//jx7P/Ry8b/sayp//jx7P/48ez/3NXR/6ah + nv/48ez/+PHs/97FsP+3f1D/u35K/7t+Sv+7fkr/xI9i/9u7of8AAAD/IyIh/wAAAIoAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gLN2cUxRHElujVmFPg1ZhT/LE4U/x4fHf8AAAD/+PHs/93X0v+koJz/+PHs//jx + 7P/Ry8b/sayp//jx7P/48ez/3NXR/6ahnv/48ez/+PHs/8/Jxf+fgGb/voRS/72DUv+wiGf/xrOk//fw + 6/8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/LE4U/x4f + Hf8AAAD/8Onk/9XPy/+gm5j/8Onk//Dp5P/Jw7//qqai//Dp5P/w6eT/1M7K/6Gcmf/w6eT/8Onk/8fC + vv+qpKD/38q4/9/Kuf+4sKv/t7Ku//Dp5P8AAAD/IyIh/wAAAIoAAAAAAAAAAAAAAAAAAAAA////Aubs + 4itZgT6rNGUT8zVmFP81ZhT/MFIZ/xYYFf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BQQE/wAA + AIoAAAAAAAAAAAAAAAAAAAAA/v7+CK/CokY3ZxbONWYU/TVmFP81ZhT/MFkU/yA3EP8YLwj/GC8J/xgv + Cf8YLwn/GC8J/xgvCf8YLwn/GC8J/BYsCPEcLg/pGy0P5hstD+YbLRDmGy4Q5hsuEOYcLhDmHC4R5h0u + EeYdLxHmHjAS5h0uEeYdLxHmHjAS5gAAAEoAAAAAAAAAAAAAAAD//v8B9vj1HXSWXoM0ZRPlNWYU/jVm + FP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf42ZxX9NmYV/TZm + Fv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/QAAAAAAAAAAAAAAAAAA + AAD+//4CytbCMkJwJLs0ZRP4NWYU/zVmFP81ZhT/NWYU/zVmFPtHcynNoLeRhj9uINM1ZhT9NWYU/zVm + FP81ZhT/NWYU/zZnFf82ZxX/NmcV/zZmFv82Zhf/NmYX/zdnGP83Zxj/OGgZ/zppGv86ahv/O2sc/zpp + Gv86ahv/O2sc/wAAAAAAAAAAAAAAAAAAAAD9/v0Nj6p+VzRlE9U1ZhT9NWYU/zVmFP81ZhT/NWYU/jVl + FOtpjVGW4uneTV+GRac0ZRPxNWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zdn + F/83Zxj/OGgZ/zlpGv86ahv/O2sc/zlpGv86ahv/O2sc/wAAAAAAAAAAAAAAAP///gLj6t8rVn88rDRl + FPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5CqflU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlpGv86ahv/O2sc/zlpGv86ahv/O2sc/wAA + AAAAAAAAAAAAAP7+/giswJ9HN2cWzzVmFP01ZhT/NWYU/zVmFP81ZhT/NWYU/T1sHcnD0ro2/v7+BMLQ + uDc9bB3KNWYU/TVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp + Gv86ahv/Omob/zlpGv86ahv/Omob/wAAAAAAAAAA////AfX49B5ylFyGNGUT5jVmFP41ZhT/NWYU/zVm + FP81ZhT/NWYU9leAPLPp7uYu////A+nu5ixZgT6vNWYU9DVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZm + FP82ZhX/NmYX/zZmF/83Zxf/N2cY/zlpGv86ahv/Omob/zlpGv86ahv/Omob/wAAAAAAAAAA/v7+AsjV + vzFBbyK6NGUU9jVmFP01ZhT9NWYU/TVmFP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVm + FPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZmFf02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/Tho + Gf06aRr9Omob/QAAAAAAAAAA/f79A4+qfS42ZxWhNmcVyDZnFco2ZxXKNmcVyjZnFco2ZxXJOGgYo6/C + ojT+/v4FAAAAAP7+/gO6yq8wO2obojZnFck2ZxXKNmcVyjdnFso3aBbKN2gWyjdoFso3ZxfKN2cYyjhn + Gco4aBnKOWgayjpqG8o7axzKPGsdyjpqG8o7axzKPGsdygAAAAAAAAAA+vv6AcHQtwyxxKQqscSkNbHE + pDWxxKQ1scSkNbHEpDWxxKQ1tMaoKu7y7Az///4BAAAAAAAAAADz9vELtseqKrHEpDWxxKQ1scSkNbHE + pDWxxKU1scSlNbHEpTWxxKU1scSlNbHEpTWxxKY1ssSmNbLFpjWzxac1s8WnNbLFpjWzxac1s8WnNQAA + AAAAAAAAAAAAAAAAAAD///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAA + AAAAAAAA////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av// + /wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAAAAAAP/g + AAAAAAAA/+AAAAAAAAD/4AAAAAAAAP/gAAAAAAAA/+AAAAAAAAD/4AAAAAAAAP/gAAAAAAAA/8AAAAAA + AAD/wAAAAAAAAP/AAAAAAAAA/8AAAAAAAAD/gAAAAAAAAP+AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8A + AAAAAAAA/gAAAAAAAAD+AAAAAAAAAPwAAAAAAAAA/AAAABAAAAD4AAAAEAAAAPgAAAAQAAAA+AQAABAA + AADwDgAAEAAAAPAOAAAQAAAA4A4AABAAAADgHwAAEAAAAOAfAAAQAAAA//////AAAAD/////8AAAAP// + ///wAAAA +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_Graph.vb b/VECTO/GUI/F_Graph.vb new file mode 100644 index 0000000000000000000000000000000000000000..3f98e2cde47dccc5ef571c4ddcb69c443237bd06 --- /dev/null +++ b/VECTO/GUI/F_Graph.vb @@ -0,0 +1,595 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +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 xMin As Single + Private xMax As Single + + Private xMax0 As Single + + + Public Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Channels = New List(Of cChannel) + + Clear() + + Me.CbXaxis.SelectedIndex = 0 + + + End Sub + + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + + If fbVMOD.OpenDialog(Filepath) Then + + LoadNewFile(fbVMOD.Files(0)) + + End If + + End Sub + + + Private Sub ToolStripButton2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton2.Click + LoadFile() + End Sub + + Public Sub LoadNewFile(ByVal Path As String) + Dim lv0 As ListViewItem + Dim i As Integer + + Clear() + + Filepath = Path + + 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 + + End Sub + + 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) + + + file = New cFile_V3 + + If file.OpenRead(Filepath) Then + + Try + + Channels.Clear() + + 'Header + line = file.ReadLine + + sDim = UBound(line) + + For i = 0 To sDim + c0 = New cChannel + c0.Name = line(i) + c0.Values = New List(Of String) + Channels.Add(c0) + Next + + 'Values + Do While Not file.EndOfFile + line = file.ReadLine + For i = 0 To sDim + Channels(i).Values.Add(line(i)) + Next + Loop + + file.Close() + + l0 = Channels(0).Values + TimeList = New List(Of Single) + For i = 0 To l0.Count - 1 + TimeList.Add(CSng(l0(i))) + Next + + l0 = Channels(1).Values + DistList = New List(Of Single) + For i = 0 To l0.Count - 1 + DistList.Add(CSng(l0(i))) + Next + + SetxMax0() + + Me.TbXmin.Text = 0 + Me.TbXmax.Text = xMax0 + + Me.Text = fFILE(Filepath, True) + + Catch ex As Exception + file.Close() + Exit Sub + End Try + + End If + + UpdateGraph() + + End Sub + + Private Sub SetxMax0() + + If Channels.Count = 0 Then Exit Sub + + If Me.CbXaxis.SelectedIndex = 0 Then + xMax0 = DistList(DistList.Count - 1) + Else + xMax0 = TimeList(TimeList.Count - 1) + End If + + 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 + + If Me.ListView1.CheckedItems.Count = 0 Then + Me.PictureBox1.Image = Nothing + Exit Sub + End If + + OverDist = (Me.CbXaxis.SelectedIndex = 0) + + SetxMax0() + + + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + MyChart.Width = Me.PictureBox1.Width + MyChart.Height = Me.PictureBox1.Height + + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + + + For Each lv0 In Me.ListView1.CheckedItems + + IsLeft = (lv0.SubItems(1).Text = "Left") + + 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 + + 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 + + MyChart.Series.Add(s) + + Next + + + a.Name = "main" + + 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 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 leftaxis.Count > 0 Then + + txt = leftaxis(0) + For i = 1 To leftaxis.Count - 1 + txt &= ", " & leftaxis(i) + Next + + 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 + + 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 + + End If + + a.BackColor = Color.GhostWhite + + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 + + MyChart.ChartAreas.Add(a) + + With MyChart.ChartAreas(0) + .Position.X = 0 + .Position.Y = 0 + .Position.Width = 85 + .Position.Height = 100 + End With + + 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)) + + Me.PictureBox1.Image = img + + End Sub + + 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 + + Interv0 = (xMax - xMin) / 10 + + 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 + + 'Intervall speichern + Return xydmin + + End Function + + Private Sub Clear() + + Filepath = "" + + Me.ListView1.Items.Clear() + + Me.TbXmin.Text = "" + Me.TbXmax.Text = "" + + Me.PictureBox1.Image = Nothing + 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 + +End Class \ No newline at end of file diff --git a/VECTO/GUI/F_Graph_ChEdit.Designer.vb b/VECTO/GUI/F_Graph_ChEdit.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..dbc273bf4836781c8f8708f4a535e9ec9f5df892 --- /dev/null +++ b/VECTO/GUI/F_Graph_ChEdit.Designer.vb @@ -0,0 +1,143 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_Graph_ChEdit + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.ComboBox1 = New System.Windows.Forms.ComboBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.RbRight = New System.Windows.Forms.RadioButton() + Me.RbLeft = New System.Windows.Forms.RadioButton() + Me.TableLayoutPanel1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(58, 110) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'ComboBox1 + ' + Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ComboBox1.FormattingEnabled = True + Me.ComboBox1.Location = New System.Drawing.Point(12, 12) + Me.ComboBox1.Name = "ComboBox1" + Me.ComboBox1.Size = New System.Drawing.Size(188, 21) + Me.ComboBox1.TabIndex = 1 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.RbRight) + Me.GroupBox1.Controls.Add(Me.RbLeft) + Me.GroupBox1.Location = New System.Drawing.Point(12, 39) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(188, 55) + Me.GroupBox1.TabIndex = 2 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Y Axis" + ' + 'RbRight + ' + Me.RbRight.AutoSize = True + Me.RbRight.Location = New System.Drawing.Point(80, 19) + Me.RbRight.Name = "RbRight" + Me.RbRight.Size = New System.Drawing.Size(50, 17) + Me.RbRight.TabIndex = 3 + Me.RbRight.TabStop = True + Me.RbRight.Text = "Right" + Me.RbRight.UseVisualStyleBackColor = True + ' + 'RbLeft + ' + Me.RbLeft.AutoSize = True + Me.RbLeft.Location = New System.Drawing.Point(16, 19) + Me.RbLeft.Name = "RbLeft" + Me.RbLeft.Size = New System.Drawing.Size(43, 17) + Me.RbLeft.TabIndex = 3 + Me.RbLeft.TabStop = True + Me.RbLeft.Text = "Left" + Me.RbLeft.UseVisualStyleBackColor = True + ' + 'F_Graph_ChEdit + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(216, 151) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.ComboBox1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_Graph_ChEdit" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Edit Channel" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents RbRight As System.Windows.Forms.RadioButton + Friend WithEvents RbLeft As System.Windows.Forms.RadioButton + +End Class diff --git a/VECTO/GUI/F_Graph_ChEdit.resx b/VECTO/GUI/F_Graph_ChEdit.resx new file mode 100644 index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04 --- /dev/null +++ b/VECTO/GUI/F_Graph_ChEdit.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_Graph_ChEdit.vb b/VECTO/GUI/F_Graph_ChEdit.vb new file mode 100644 index 0000000000000000000000000000000000000000..3fd5f7164c7c49a06dc5e5c99b7de0e71046f427 --- /dev/null +++ b/VECTO/GUI/F_Graph_ChEdit.vb @@ -0,0 +1,26 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports System.Windows.Forms + +Public Class F_Graph_ChEdit + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 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 + +End Class diff --git a/VECTO/GUI/F_MAINForm.Designer.vb b/VECTO/GUI/F_MAINForm.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..6c6bcbab3c13f52480e928252e75c1091c76bdea --- /dev/null +++ b/VECTO/GUI/F_MAINForm.Designer.vb @@ -0,0 +1,1130 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_MAINForm + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_MAINForm)) + Me.StatusBAR = New System.Windows.Forms.StatusStrip() + Me.ToolStripLbStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.ToolStripProgBarJob = New System.Windows.Forms.ToolStripProgressBar() + Me.ToolStripProgBarOverall = New System.Windows.Forms.ToolStripProgressBar() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPageGEN = New System.Windows.Forms.TabPage() + Me.LbDecl = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.BtGENdown = New System.Windows.Forms.Button() + Me.BtGENup = New System.Windows.Forms.Button() + Me.LbAutoShDown = New System.Windows.Forms.Label() + Me.ChBoxAllGEN = New System.Windows.Forms.CheckBox() + Me.LvGEN = New System.Windows.Forms.ListView() + Me.ColGENpath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColGENstatus = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ButtonGENopt = New System.Windows.Forms.Button() + Me.ButtonGENremove = New System.Windows.Forms.Button() + Me.Button1 = New System.Windows.Forms.Button() + Me.ButtonGENadd = New System.Windows.Forms.Button() + Me.TabPageDRI = New System.Windows.Forms.TabPage() + Me.BtDRIdown = New System.Windows.Forms.Button() + Me.BtDRIup = New System.Windows.Forms.Button() + Me.ChBoxAllDRI = New System.Windows.Forms.CheckBox() + Me.LvDRI = New System.Windows.Forms.ListView() + Me.ColDRIpath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColDRIstatus = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ButtonDRIedit = New System.Windows.Forms.Button() + Me.ButtonDRIremove = New System.Windows.Forms.Button() + Me.ButtonDRIadd = New System.Windows.Forms.Button() + Me.TabPgOptions = New System.Windows.Forms.TabPage() + Me.GrBoxBATCH = New System.Windows.Forms.GroupBox() + Me.ChBoxBatchSubD = New System.Windows.Forms.CheckBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.ButBObrowse = New System.Windows.Forms.Button() + Me.CbBOmode = New System.Windows.Forms.ComboBox() + Me.TbBOpath = New System.Windows.Forms.TextBox() + Me.GrBoxSTD = New System.Windows.Forms.GroupBox() + Me.ChBoxAutoSD = New System.Windows.Forms.CheckBox() + Me.PanelOptAllg = New System.Windows.Forms.Panel() + Me.ChBoxModOut = New System.Windows.Forms.CheckBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.RbDev = New System.Windows.Forms.RadioButton() + Me.RbDecl = New System.Windows.Forms.RadioButton() + Me.PnDeclOpt = New System.Windows.Forms.Panel() + Me.CbBatch = New System.Windows.Forms.CheckBox() + Me.ChBoxCyclDistCor = New System.Windows.Forms.CheckBox() + Me.ChBoxUseGears = New System.Windows.Forms.CheckBox() + Me.TabPageDEV = New System.Windows.Forms.TabPage() + Me.LvDEVoptions = New System.Windows.Forms.ListView() + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ConMenFilelist = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.SaveListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.LoadListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.LoadDefaultListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ClearListToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() + Me.LvMsg = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripDrDnBtTools = New System.Windows.Forms.ToolStripDropDownButton() + Me.GENEditorToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.VEHEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EngineEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GearboxEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.GraphToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator() + Me.SignOrVerifyFilesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.OpenLogToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripDrDnBtInfo = New System.Windows.Forms.ToolStripDropDownButton() + Me.UserManualToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.UpdateNotesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.CreateActivationFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AboutVECTOToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.CmDEV = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.TmProgSec = New System.Windows.Forms.Timer(Me.components) + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.OpenInGraphWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StatusBAR.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPageGEN.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPageDRI.SuspendLayout() + Me.TabPgOptions.SuspendLayout() + Me.GrBoxBATCH.SuspendLayout() + Me.PanelOptAllg.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.PnDeclOpt.SuspendLayout() + Me.TabPageDEV.SuspendLayout() + Me.ConMenFilelist.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.CmOpenFile.SuspendLayout() + Me.SuspendLayout() + ' + 'StatusBAR + ' + Me.StatusBAR.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripLbStatus, Me.ToolStripProgBarJob, Me.ToolStripProgBarOverall}) + Me.StatusBAR.Location = New System.Drawing.Point(0, 616) + Me.StatusBAR.Name = "StatusBAR" + Me.StatusBAR.Size = New System.Drawing.Size(1136, 22) + Me.StatusBAR.TabIndex = 7 + Me.StatusBAR.Text = "StatusBAR" + ' + 'ToolStripLbStatus + ' + Me.ToolStripLbStatus.Name = "ToolStripLbStatus" + Me.ToolStripLbStatus.Size = New System.Drawing.Size(1121, 17) + Me.ToolStripLbStatus.Spring = True + Me.ToolStripLbStatus.Text = "Status Text" + Me.ToolStripLbStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'ToolStripProgBarJob + ' + Me.ToolStripProgBarJob.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripProgBarJob.AutoSize = False + Me.ToolStripProgBarJob.Name = "ToolStripProgBarJob" + Me.ToolStripProgBarJob.Size = New System.Drawing.Size(100, 16) + Me.ToolStripProgBarJob.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.ToolStripProgBarJob.ToolTipText = "overall progress" + Me.ToolStripProgBarJob.Visible = False + ' + 'ToolStripProgBarOverall + ' + Me.ToolStripProgBarOverall.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripProgBarOverall.AutoSize = False + Me.ToolStripProgBarOverall.Name = "ToolStripProgBarOverall" + Me.ToolStripProgBarOverall.Size = New System.Drawing.Size(100, 16) + Me.ToolStripProgBarOverall.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.ToolStripProgBarOverall.ToolTipText = "job progress" + Me.ToolStripProgBarOverall.Visible = False + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPageGEN) + Me.TabControl1.Controls.Add(Me.TabPageDRI) + Me.TabControl1.Controls.Add(Me.TabPgOptions) + Me.TabControl1.Controls.Add(Me.TabPageDEV) + Me.TabControl1.Location = New System.Drawing.Point(3, 3) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(1126, 372) + Me.TabControl1.TabIndex = 10 + ' + 'TabPageGEN + ' + Me.TabPageGEN.Controls.Add(Me.LbDecl) + Me.TabPageGEN.Controls.Add(Me.PictureBox1) + Me.TabPageGEN.Controls.Add(Me.BtGENdown) + Me.TabPageGEN.Controls.Add(Me.BtGENup) + Me.TabPageGEN.Controls.Add(Me.LbAutoShDown) + Me.TabPageGEN.Controls.Add(Me.ChBoxAllGEN) + Me.TabPageGEN.Controls.Add(Me.LvGEN) + Me.TabPageGEN.Controls.Add(Me.ButtonGENopt) + Me.TabPageGEN.Controls.Add(Me.ButtonGENremove) + Me.TabPageGEN.Controls.Add(Me.Button1) + Me.TabPageGEN.Controls.Add(Me.ButtonGENadd) + Me.TabPageGEN.Location = New System.Drawing.Point(4, 22) + Me.TabPageGEN.Name = "TabPageGEN" + Me.TabPageGEN.Padding = New System.Windows.Forms.Padding(3) + Me.TabPageGEN.Size = New System.Drawing.Size(1118, 346) + Me.TabPageGEN.TabIndex = 0 + Me.TabPageGEN.Text = "Job Files" + Me.TabPageGEN.UseVisualStyleBackColor = True + ' + 'LbDecl + ' + Me.LbDecl.AutoSize = True + Me.LbDecl.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LbDecl.Location = New System.Drawing.Point(6, 97) + Me.LbDecl.Name = "LbDecl" + Me.LbDecl.Size = New System.Drawing.Size(107, 13) + Me.LbDecl.TabIndex = 19 + Me.LbDecl.Text = "Declaration Mode" + Me.LbDecl.Visible = False + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(6, 6) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(105, 44) + Me.PictureBox1.TabIndex = 18 + Me.PictureBox1.TabStop = False + ' + 'BtGENdown + ' + Me.BtGENdown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtGENdown.Image = Global.VECTO.My.Resources.Resources.Actions_arrow_down_icon + Me.BtGENdown.Location = New System.Drawing.Point(996, 317) + Me.BtGENdown.Name = "BtGENdown" + Me.BtGENdown.Size = New System.Drawing.Size(30, 23) + Me.BtGENdown.TabIndex = 6 + Me.BtGENdown.UseVisualStyleBackColor = True + ' + 'BtGENup + ' + Me.BtGENup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtGENup.Image = Global.VECTO.My.Resources.Resources.Actions_arrow_up_icon + Me.BtGENup.Location = New System.Drawing.Point(960, 317) + Me.BtGENup.Name = "BtGENup" + Me.BtGENup.Size = New System.Drawing.Size(30, 23) + Me.BtGENup.TabIndex = 4 + Me.BtGENup.UseVisualStyleBackColor = True + ' + 'LbAutoShDown + ' + Me.LbAutoShDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.LbAutoShDown.AutoSize = True + Me.LbAutoShDown.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LbAutoShDown.ForeColor = System.Drawing.Color.Red + Me.LbAutoShDown.Location = New System.Drawing.Point(253, 322) + Me.LbAutoShDown.Name = "LbAutoShDown" + Me.LbAutoShDown.Size = New System.Drawing.Size(225, 13) + Me.LbAutoShDown.TabIndex = 17 + Me.LbAutoShDown.Text = "!!! Automatic Shutdown is activated !!!" + Me.LbAutoShDown.Visible = False + ' + 'ChBoxAllGEN + ' + Me.ChBoxAllGEN.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.ChBoxAllGEN.AutoSize = True + Me.ChBoxAllGEN.Location = New System.Drawing.Point(129, 321) + Me.ChBoxAllGEN.Name = "ChBoxAllGEN" + Me.ChBoxAllGEN.Size = New System.Drawing.Size(37, 17) + Me.ChBoxAllGEN.TabIndex = 16 + Me.ChBoxAllGEN.Text = "All" + Me.ChBoxAllGEN.UseVisualStyleBackColor = True + ' + 'LvGEN + ' + Me.LvGEN.AllowDrop = True + Me.LvGEN.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvGEN.CheckBoxes = True + Me.LvGEN.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColGENpath, Me.ColGENstatus}) + Me.LvGEN.FullRowSelect = True + Me.LvGEN.GridLines = True + Me.LvGEN.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable + Me.LvGEN.HideSelection = False + Me.LvGEN.LabelEdit = True + Me.LvGEN.Location = New System.Drawing.Point(117, 6) + Me.LvGEN.Name = "LvGEN" + Me.LvGEN.Size = New System.Drawing.Size(995, 305) + Me.LvGEN.TabIndex = 14 + Me.LvGEN.UseCompatibleStateImageBehavior = False + Me.LvGEN.View = System.Windows.Forms.View.Details + ' + 'ColGENpath + ' + Me.ColGENpath.Text = "Filepath" + Me.ColGENpath.Width = 797 + ' + 'ColGENstatus + ' + Me.ColGENstatus.Text = "" + Me.ColGENstatus.Width = 175 + ' + 'ButtonGENopt + ' + Me.ButtonGENopt.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonGENopt.Location = New System.Drawing.Point(1032, 317) + Me.ButtonGENopt.Name = "ButtonGENopt" + Me.ButtonGENopt.Size = New System.Drawing.Size(80, 23) + Me.ButtonGENopt.TabIndex = 8 + Me.ButtonGENopt.Text = "List Options" + Me.ButtonGENopt.UseVisualStyleBackColor = True + ' + 'ButtonGENremove + ' + Me.ButtonGENremove.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonGENremove.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ButtonGENremove.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.ButtonGENremove.Location = New System.Drawing.Point(924, 317) + Me.ButtonGENremove.Name = "ButtonGENremove" + Me.ButtonGENremove.Size = New System.Drawing.Size(30, 23) + Me.ButtonGENremove.TabIndex = 2 + Me.ButtonGENremove.UseVisualStyleBackColor = True + ' + 'Button1 + ' + Me.Button1.Image = Global.VECTO.My.Resources.Resources.Play_icon + Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button1.Location = New System.Drawing.Point(6, 53) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(105, 41) + Me.Button1.TabIndex = 12 + Me.Button1.Text = "START" + Me.Button1.UseVisualStyleBackColor = True + ' + 'ButtonGENadd + ' + Me.ButtonGENadd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonGENadd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ButtonGENadd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.ButtonGENadd.Location = New System.Drawing.Point(888, 317) + Me.ButtonGENadd.Name = "ButtonGENadd" + Me.ButtonGENadd.Size = New System.Drawing.Size(30, 23) + Me.ButtonGENadd.TabIndex = 1 + Me.ButtonGENadd.UseVisualStyleBackColor = True + ' + 'TabPageDRI + ' + Me.TabPageDRI.Controls.Add(Me.BtDRIdown) + Me.TabPageDRI.Controls.Add(Me.BtDRIup) + Me.TabPageDRI.Controls.Add(Me.ChBoxAllDRI) + Me.TabPageDRI.Controls.Add(Me.LvDRI) + Me.TabPageDRI.Controls.Add(Me.ButtonDRIedit) + Me.TabPageDRI.Controls.Add(Me.ButtonDRIremove) + Me.TabPageDRI.Controls.Add(Me.ButtonDRIadd) + Me.TabPageDRI.Location = New System.Drawing.Point(4, 22) + Me.TabPageDRI.Name = "TabPageDRI" + Me.TabPageDRI.Padding = New System.Windows.Forms.Padding(3) + Me.TabPageDRI.Size = New System.Drawing.Size(1118, 346) + Me.TabPageDRI.TabIndex = 1 + Me.TabPageDRI.Text = "Driving Cycles" + Me.TabPageDRI.UseVisualStyleBackColor = True + ' + 'BtDRIdown + ' + Me.BtDRIdown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtDRIdown.Image = Global.VECTO.My.Resources.Resources.Actions_arrow_down_icon + Me.BtDRIdown.Location = New System.Drawing.Point(996, 317) + Me.BtDRIdown.Name = "BtDRIdown" + Me.BtDRIdown.Size = New System.Drawing.Size(30, 23) + Me.BtDRIdown.TabIndex = 3 + Me.BtDRIdown.UseVisualStyleBackColor = True + ' + 'BtDRIup + ' + Me.BtDRIup.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtDRIup.Image = Global.VECTO.My.Resources.Resources.Actions_arrow_up_icon + Me.BtDRIup.Location = New System.Drawing.Point(960, 317) + Me.BtDRIup.Name = "BtDRIup" + Me.BtDRIup.Size = New System.Drawing.Size(30, 23) + Me.BtDRIup.TabIndex = 2 + Me.BtDRIup.UseVisualStyleBackColor = True + ' + 'ChBoxAllDRI + ' + Me.ChBoxAllDRI.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.ChBoxAllDRI.AutoSize = True + Me.ChBoxAllDRI.Location = New System.Drawing.Point(15, 321) + Me.ChBoxAllDRI.Name = "ChBoxAllDRI" + Me.ChBoxAllDRI.Size = New System.Drawing.Size(37, 17) + Me.ChBoxAllDRI.TabIndex = 7 + Me.ChBoxAllDRI.Text = "All" + Me.ChBoxAllDRI.UseVisualStyleBackColor = True + ' + 'LvDRI + ' + Me.LvDRI.AllowDrop = True + Me.LvDRI.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvDRI.CheckBoxes = True + Me.LvDRI.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColDRIpath, Me.ColDRIstatus}) + Me.LvDRI.FullRowSelect = True + Me.LvDRI.GridLines = True + Me.LvDRI.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable + Me.LvDRI.HideSelection = False + Me.LvDRI.LabelEdit = True + Me.LvDRI.Location = New System.Drawing.Point(6, 6) + Me.LvDRI.Name = "LvDRI" + Me.LvDRI.Size = New System.Drawing.Size(1106, 305) + Me.LvDRI.TabIndex = 6 + Me.LvDRI.UseCompatibleStateImageBehavior = False + Me.LvDRI.View = System.Windows.Forms.View.Details + ' + 'ColDRIpath + ' + Me.ColDRIpath.Text = "Filepath" + Me.ColDRIpath.Width = 915 + ' + 'ColDRIstatus + ' + Me.ColDRIstatus.Text = "" + Me.ColDRIstatus.Width = 150 + ' + 'ButtonDRIedit + ' + Me.ButtonDRIedit.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonDRIedit.Location = New System.Drawing.Point(1032, 317) + Me.ButtonDRIedit.Name = "ButtonDRIedit" + Me.ButtonDRIedit.Size = New System.Drawing.Size(80, 23) + Me.ButtonDRIedit.TabIndex = 4 + Me.ButtonDRIedit.Text = "List Options" + Me.ButtonDRIedit.UseVisualStyleBackColor = True + ' + 'ButtonDRIremove + ' + Me.ButtonDRIremove.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonDRIremove.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ButtonDRIremove.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.ButtonDRIremove.Location = New System.Drawing.Point(924, 317) + Me.ButtonDRIremove.Name = "ButtonDRIremove" + Me.ButtonDRIremove.Size = New System.Drawing.Size(30, 23) + Me.ButtonDRIremove.TabIndex = 1 + Me.ButtonDRIremove.UseVisualStyleBackColor = True + ' + 'ButtonDRIadd + ' + Me.ButtonDRIadd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonDRIadd.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.ButtonDRIadd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.ButtonDRIadd.Location = New System.Drawing.Point(888, 317) + Me.ButtonDRIadd.Name = "ButtonDRIadd" + Me.ButtonDRIadd.Size = New System.Drawing.Size(30, 23) + Me.ButtonDRIadd.TabIndex = 0 + Me.ButtonDRIadd.UseVisualStyleBackColor = True + ' + 'TabPgOptions + ' + Me.TabPgOptions.Controls.Add(Me.GrBoxBATCH) + Me.TabPgOptions.Controls.Add(Me.GrBoxSTD) + Me.TabPgOptions.Controls.Add(Me.ChBoxAutoSD) + Me.TabPgOptions.Controls.Add(Me.PanelOptAllg) + Me.TabPgOptions.Location = New System.Drawing.Point(4, 22) + Me.TabPgOptions.Name = "TabPgOptions" + Me.TabPgOptions.Padding = New System.Windows.Forms.Padding(3) + Me.TabPgOptions.Size = New System.Drawing.Size(1118, 346) + Me.TabPgOptions.TabIndex = 2 + Me.TabPgOptions.Text = "Options" + Me.TabPgOptions.UseVisualStyleBackColor = True + ' + 'GrBoxBATCH + ' + Me.GrBoxBATCH.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GrBoxBATCH.Controls.Add(Me.ChBoxBatchSubD) + Me.GrBoxBATCH.Controls.Add(Me.Label2) + Me.GrBoxBATCH.Controls.Add(Me.ButBObrowse) + Me.GrBoxBATCH.Controls.Add(Me.CbBOmode) + Me.GrBoxBATCH.Controls.Add(Me.TbBOpath) + Me.GrBoxBATCH.Location = New System.Drawing.Point(6, 224) + Me.GrBoxBATCH.Name = "GrBoxBATCH" + Me.GrBoxBATCH.Size = New System.Drawing.Size(1106, 116) + Me.GrBoxBATCH.TabIndex = 5 + Me.GrBoxBATCH.TabStop = False + Me.GrBoxBATCH.Text = "Batch Options" + ' + 'ChBoxBatchSubD + ' + Me.ChBoxBatchSubD.AutoSize = True + Me.ChBoxBatchSubD.Location = New System.Drawing.Point(14, 46) + Me.ChBoxBatchSubD.Name = "ChBoxBatchSubD" + Me.ChBoxBatchSubD.Size = New System.Drawing.Size(206, 17) + Me.ChBoxBatchSubD.TabIndex = 4 + Me.ChBoxBatchSubD.Text = "Create Subdirectories for modal results" + Me.ChBoxBatchSubD.UseVisualStyleBackColor = True + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(11, 22) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(64, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Output Path" + ' + 'ButBObrowse + ' + Me.ButBObrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButBObrowse.Location = New System.Drawing.Point(1051, 18) + Me.ButBObrowse.Name = "ButBObrowse" + Me.ButBObrowse.Size = New System.Drawing.Size(28, 20) + Me.ButBObrowse.TabIndex = 3 + Me.ButBObrowse.Text = "..." + Me.ButBObrowse.UseVisualStyleBackColor = True + ' + 'CbBOmode + ' + Me.CbBOmode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbBOmode.FormattingEnabled = True + Me.CbBOmode.Items.AddRange(New Object() {"Directory of .vecto File", "Custom Directory"}) + Me.CbBOmode.Location = New System.Drawing.Point(81, 19) + Me.CbBOmode.Name = "CbBOmode" + Me.CbBOmode.Size = New System.Drawing.Size(140, 21) + Me.CbBOmode.TabIndex = 0 + ' + 'TbBOpath + ' + Me.TbBOpath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbBOpath.Location = New System.Drawing.Point(227, 18) + Me.TbBOpath.Name = "TbBOpath" + Me.TbBOpath.Size = New System.Drawing.Size(818, 20) + Me.TbBOpath.TabIndex = 1 + ' + 'GrBoxSTD + ' + Me.GrBoxSTD.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GrBoxSTD.Location = New System.Drawing.Point(6, 224) + Me.GrBoxSTD.Name = "GrBoxSTD" + Me.GrBoxSTD.Size = New System.Drawing.Size(1106, 116) + Me.GrBoxSTD.TabIndex = 14 + Me.GrBoxSTD.TabStop = False + Me.GrBoxSTD.Text = "Standard Options" + ' + 'ChBoxAutoSD + ' + Me.ChBoxAutoSD.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ChBoxAutoSD.AutoSize = True + Me.ChBoxAutoSD.Location = New System.Drawing.Point(943, 6) + Me.ChBoxAutoSD.Name = "ChBoxAutoSD" + Me.ChBoxAutoSD.Size = New System.Drawing.Size(169, 17) + Me.ChBoxAutoSD.TabIndex = 13 + Me.ChBoxAutoSD.Text = "Shutdown system after last job" + Me.ChBoxAutoSD.UseVisualStyleBackColor = True + ' + 'PanelOptAllg + ' + Me.PanelOptAllg.Controls.Add(Me.ChBoxModOut) + Me.PanelOptAllg.Controls.Add(Me.GroupBox1) + Me.PanelOptAllg.Controls.Add(Me.PnDeclOpt) + Me.PanelOptAllg.Location = New System.Drawing.Point(6, 6) + Me.PanelOptAllg.Name = "PanelOptAllg" + Me.PanelOptAllg.Size = New System.Drawing.Size(358, 212) + Me.PanelOptAllg.TabIndex = 0 + ' + 'ChBoxModOut + ' + Me.ChBoxModOut.AutoSize = True + Me.ChBoxModOut.Checked = True + Me.ChBoxModOut.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChBoxModOut.Location = New System.Drawing.Point(9, 180) + Me.ChBoxModOut.Name = "ChBoxModOut" + Me.ChBoxModOut.Size = New System.Drawing.Size(115, 17) + Me.ChBoxModOut.TabIndex = 0 + Me.ChBoxModOut.Text = "Write modal results" + Me.ChBoxModOut.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.RbDev) + Me.GroupBox1.Controls.Add(Me.RbDecl) + Me.GroupBox1.Location = New System.Drawing.Point(3, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(121, 72) + Me.GroupBox1.TabIndex = 15 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Mode" + ' + 'RbDev + ' + Me.RbDev.AutoSize = True + Me.RbDev.Checked = True + Me.RbDev.Location = New System.Drawing.Point(6, 42) + Me.RbDev.Name = "RbDev" + Me.RbDev.Size = New System.Drawing.Size(111, 17) + Me.RbDev.TabIndex = 1 + Me.RbDev.TabStop = True + Me.RbDev.Text = "Engineering Mode" + Me.RbDev.UseVisualStyleBackColor = True + ' + 'RbDecl + ' + Me.RbDecl.AutoSize = True + Me.RbDecl.Location = New System.Drawing.Point(6, 19) + Me.RbDecl.Name = "RbDecl" + Me.RbDecl.Size = New System.Drawing.Size(109, 17) + Me.RbDecl.TabIndex = 0 + Me.RbDecl.TabStop = True + Me.RbDecl.Text = "Declaration Mode" + Me.RbDecl.UseVisualStyleBackColor = True + ' + 'PnDeclOpt + ' + Me.PnDeclOpt.Controls.Add(Me.CbBatch) + Me.PnDeclOpt.Controls.Add(Me.ChBoxCyclDistCor) + Me.PnDeclOpt.Controls.Add(Me.ChBoxUseGears) + Me.PnDeclOpt.Location = New System.Drawing.Point(3, 81) + Me.PnDeclOpt.Name = "PnDeclOpt" + Me.PnDeclOpt.Size = New System.Drawing.Size(202, 93) + Me.PnDeclOpt.TabIndex = 13 + ' + 'CbBatch + ' + Me.CbBatch.AutoSize = True + Me.CbBatch.Location = New System.Drawing.Point(6, 3) + Me.CbBatch.Name = "CbBatch" + Me.CbBatch.Size = New System.Drawing.Size(84, 17) + Me.CbBatch.TabIndex = 15 + Me.CbBatch.Text = "Batch Mode" + Me.CbBatch.UseVisualStyleBackColor = True + ' + 'ChBoxCyclDistCor + ' + Me.ChBoxCyclDistCor.AutoSize = True + Me.ChBoxCyclDistCor.Location = New System.Drawing.Point(6, 41) + Me.ChBoxCyclDistCor.Name = "ChBoxCyclDistCor" + Me.ChBoxCyclDistCor.Size = New System.Drawing.Size(148, 17) + Me.ChBoxCyclDistCor.TabIndex = 0 + Me.ChBoxCyclDistCor.Text = "Cycle Distance Correction" + Me.ChBoxCyclDistCor.UseVisualStyleBackColor = True + ' + 'ChBoxUseGears + ' + Me.ChBoxUseGears.AutoSize = True + Me.ChBoxUseGears.Location = New System.Drawing.Point(6, 64) + Me.ChBoxUseGears.Name = "ChBoxUseGears" + Me.ChBoxUseGears.Size = New System.Drawing.Size(188, 17) + Me.ChBoxUseGears.TabIndex = 0 + Me.ChBoxUseGears.Text = "Use gears/rpm's form driving cycle" + Me.ChBoxUseGears.UseVisualStyleBackColor = True + ' + 'TabPageDEV + ' + Me.TabPageDEV.Controls.Add(Me.LvDEVoptions) + Me.TabPageDEV.Location = New System.Drawing.Point(4, 22) + Me.TabPageDEV.Name = "TabPageDEV" + Me.TabPageDEV.Padding = New System.Windows.Forms.Padding(3) + Me.TabPageDEV.Size = New System.Drawing.Size(1118, 346) + Me.TabPageDEV.TabIndex = 3 + Me.TabPageDEV.Text = "DEV" + Me.TabPageDEV.UseVisualStyleBackColor = True + ' + 'LvDEVoptions + ' + Me.LvDEVoptions.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvDEVoptions.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader7, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader8, Me.ColumnHeader9}) + Me.LvDEVoptions.FullRowSelect = True + Me.LvDEVoptions.GridLines = True + Me.LvDEVoptions.Location = New System.Drawing.Point(6, 6) + Me.LvDEVoptions.MultiSelect = False + Me.LvDEVoptions.Name = "LvDEVoptions" + Me.LvDEVoptions.Size = New System.Drawing.Size(1106, 334) + Me.LvDEVoptions.TabIndex = 0 + Me.LvDEVoptions.UseCompatibleStateImageBehavior = False + Me.LvDEVoptions.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "Property" + Me.ColumnHeader4.Width = 89 + ' + 'ColumnHeader7 + ' + Me.ColumnHeader7.Text = "Description" + Me.ColumnHeader7.Width = 527 + ' + 'ColumnHeader5 + ' + Me.ColumnHeader5.Text = "Type" + Me.ColumnHeader5.Width = 82 + ' + 'ColumnHeader6 + ' + Me.ColumnHeader6.Text = "Value" + Me.ColumnHeader6.Width = 134 + ' + 'ColumnHeader8 + ' + Me.ColumnHeader8.Text = "Default" + Me.ColumnHeader8.Width = 120 + ' + 'ColumnHeader9 + ' + Me.ColumnHeader9.Text = "Saved In DEVconfig.txt" + Me.ColumnHeader9.Width = 129 + ' + 'ConMenFilelist + ' + Me.ConMenFilelist.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SaveListToolStripMenuItem, Me.LoadListToolStripMenuItem, Me.LoadDefaultListToolStripMenuItem, Me.ClearListToolStripMenuItem}) + Me.ConMenFilelist.Name = "ConMenFilelist" + Me.ConMenFilelist.Size = New System.Drawing.Size(176, 92) + ' + 'SaveListToolStripMenuItem + ' + Me.SaveListToolStripMenuItem.Name = "SaveListToolStripMenuItem" + Me.SaveListToolStripMenuItem.Size = New System.Drawing.Size(175, 22) + Me.SaveListToolStripMenuItem.Text = "Save List..." + ' + 'LoadListToolStripMenuItem + ' + Me.LoadListToolStripMenuItem.Name = "LoadListToolStripMenuItem" + Me.LoadListToolStripMenuItem.Size = New System.Drawing.Size(175, 22) + Me.LoadListToolStripMenuItem.Text = "Load List..." + ' + 'LoadDefaultListToolStripMenuItem + ' + Me.LoadDefaultListToolStripMenuItem.Name = "LoadDefaultListToolStripMenuItem" + Me.LoadDefaultListToolStripMenuItem.Size = New System.Drawing.Size(175, 22) + Me.LoadDefaultListToolStripMenuItem.Text = "Load Autosave-List" + ' + 'ClearListToolStripMenuItem + ' + Me.ClearListToolStripMenuItem.Name = "ClearListToolStripMenuItem" + Me.ClearListToolStripMenuItem.Size = New System.Drawing.Size(175, 22) + Me.ClearListToolStripMenuItem.Text = "Clear List" + ' + 'BackgroundWorker1 + ' + ' + 'LvMsg + ' + Me.LvMsg.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvMsg.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) + Me.LvMsg.Font = New System.Drawing.Font("Courier New", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LvMsg.FullRowSelect = True + Me.LvMsg.GridLines = True + Me.LvMsg.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable + Me.LvMsg.LabelWrap = False + Me.LvMsg.Location = New System.Drawing.Point(3, 3) + Me.LvMsg.MultiSelect = False + Me.LvMsg.Name = "LvMsg" + Me.LvMsg.Size = New System.Drawing.Size(1126, 190) + Me.LvMsg.TabIndex = 0 + Me.LvMsg.UseCompatibleStateImageBehavior = False + Me.LvMsg.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Message" + Me.ColumnHeader1.Width = 779 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Time" + Me.ColumnHeader2.Width = 151 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Source" + Me.ColumnHeader3.Width = 138 + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.SplitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.SplitContainer1.Location = New System.Drawing.Point(0, 27) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.TabControl1) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.LvMsg) + Me.SplitContainer1.Size = New System.Drawing.Size(1136, 586) + Me.SplitContainer1.SplitterDistance = 382 + Me.SplitContainer1.TabIndex = 12 + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripSeparator2, Me.ToolStripDrDnBtTools, Me.ToolStripDrDnBtInfo}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(1136, 25) + Me.ToolStrip1.TabIndex = 11 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtNew + ' + Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtNew.Image = Global.VECTO.My.Resources.Resources.blue_document_icon + Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtNew.Name = "ToolStripBtNew" + Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtNew.Text = "ToolStripBtNew" + Me.ToolStripBtNew.ToolTipText = "New Job File" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "ToolStripButton1" + Me.ToolStripBtOpen.ToolTipText = "Open File..." + ' + 'ToolStripSeparator2 + ' + Me.ToolStripSeparator2.Name = "ToolStripSeparator2" + Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripDrDnBtTools + ' + Me.ToolStripDrDnBtTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GENEditorToolStripMenuItem1, Me.VEHEditorToolStripMenuItem, Me.EngineEditorToolStripMenuItem, Me.GearboxEditorToolStripMenuItem, Me.GraphToolStripMenuItem, Me.ToolStripSeparator6, Me.SignOrVerifyFilesToolStripMenuItem, Me.ToolStripSeparator4, Me.OpenLogToolStripMenuItem, Me.SettingsToolStripMenuItem}) + Me.ToolStripDrDnBtTools.Image = Global.VECTO.My.Resources.Resources.Misc_Tools_icon + Me.ToolStripDrDnBtTools.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripDrDnBtTools.Name = "ToolStripDrDnBtTools" + Me.ToolStripDrDnBtTools.Size = New System.Drawing.Size(65, 22) + Me.ToolStripDrDnBtTools.Text = "Tools" + ' + 'GENEditorToolStripMenuItem1 + ' + Me.GENEditorToolStripMenuItem1.Image = Global.VECTO.My.Resources.Resources.F_VECTO + Me.GENEditorToolStripMenuItem1.Name = "GENEditorToolStripMenuItem1" + Me.GENEditorToolStripMenuItem1.Size = New System.Drawing.Size(170, 22) + Me.GENEditorToolStripMenuItem1.Text = "Job Editor" + ' + 'VEHEditorToolStripMenuItem + ' + Me.VEHEditorToolStripMenuItem.Image = Global.VECTO.My.Resources.Resources.F_VEH + Me.VEHEditorToolStripMenuItem.Name = "VEHEditorToolStripMenuItem" + Me.VEHEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.VEHEditorToolStripMenuItem.Text = "Vehicle Editor" + ' + 'EngineEditorToolStripMenuItem + ' + Me.EngineEditorToolStripMenuItem.Image = Global.VECTO.My.Resources.Resources.F_ENG + Me.EngineEditorToolStripMenuItem.Name = "EngineEditorToolStripMenuItem" + Me.EngineEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.EngineEditorToolStripMenuItem.Text = "Engine Editor" + ' + 'GearboxEditorToolStripMenuItem + ' + Me.GearboxEditorToolStripMenuItem.Image = Global.VECTO.My.Resources.Resources.F_GBX + Me.GearboxEditorToolStripMenuItem.Name = "GearboxEditorToolStripMenuItem" + Me.GearboxEditorToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.GearboxEditorToolStripMenuItem.Text = "Gearbox Editor" + ' + 'GraphToolStripMenuItem + ' + Me.GraphToolStripMenuItem.Image = Global.VECTO.My.Resources.Resources.F_Graph + Me.GraphToolStripMenuItem.Name = "GraphToolStripMenuItem" + Me.GraphToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.GraphToolStripMenuItem.Text = "Graph" + ' + 'ToolStripSeparator6 + ' + Me.ToolStripSeparator6.Name = "ToolStripSeparator6" + Me.ToolStripSeparator6.Size = New System.Drawing.Size(167, 6) + ' + 'SignOrVerifyFilesToolStripMenuItem + ' + Me.SignOrVerifyFilesToolStripMenuItem.Image = Global.VECTO.My.Resources.Resources.Status_dialog_password_icon + Me.SignOrVerifyFilesToolStripMenuItem.Name = "SignOrVerifyFilesToolStripMenuItem" + Me.SignOrVerifyFilesToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.SignOrVerifyFilesToolStripMenuItem.Text = "Sign or Verify Files" + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(167, 6) + Me.ToolStripSeparator4.Visible = False + ' + 'OpenLogToolStripMenuItem + ' + Me.OpenLogToolStripMenuItem.Name = "OpenLogToolStripMenuItem" + Me.OpenLogToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.OpenLogToolStripMenuItem.Text = "Open Log" + ' + 'SettingsToolStripMenuItem + ' + Me.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem" + Me.SettingsToolStripMenuItem.Size = New System.Drawing.Size(170, 22) + Me.SettingsToolStripMenuItem.Text = "Settings" + ' + 'ToolStripDrDnBtInfo + ' + Me.ToolStripDrDnBtInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UserManualToolStripMenuItem, Me.UpdateNotesToolStripMenuItem, Me.ToolStripSeparator3, Me.CreateActivationFileToolStripMenuItem, Me.AboutVECTOToolStripMenuItem1}) + Me.ToolStripDrDnBtInfo.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripDrDnBtInfo.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripDrDnBtInfo.Name = "ToolStripDrDnBtInfo" + Me.ToolStripDrDnBtInfo.Size = New System.Drawing.Size(61, 22) + Me.ToolStripDrDnBtInfo.Text = "Help" + ' + 'UserManualToolStripMenuItem + ' + Me.UserManualToolStripMenuItem.Name = "UserManualToolStripMenuItem" + Me.UserManualToolStripMenuItem.Size = New System.Drawing.Size(186, 22) + Me.UserManualToolStripMenuItem.Text = "User Manual" + ' + 'UpdateNotesToolStripMenuItem + ' + Me.UpdateNotesToolStripMenuItem.Name = "UpdateNotesToolStripMenuItem" + Me.UpdateNotesToolStripMenuItem.Size = New System.Drawing.Size(186, 22) + Me.UpdateNotesToolStripMenuItem.Text = "Release Notes" + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(183, 6) + ' + 'CreateActivationFileToolStripMenuItem + ' + Me.CreateActivationFileToolStripMenuItem.Name = "CreateActivationFileToolStripMenuItem" + Me.CreateActivationFileToolStripMenuItem.Size = New System.Drawing.Size(186, 22) + Me.CreateActivationFileToolStripMenuItem.Text = "Create Activation File" + ' + 'AboutVECTOToolStripMenuItem1 + ' + Me.AboutVECTOToolStripMenuItem1.Name = "AboutVECTOToolStripMenuItem1" + Me.AboutVECTOToolStripMenuItem1.Size = New System.Drawing.Size(186, 22) + Me.AboutVECTOToolStripMenuItem1.Text = "About VECTO" + ' + 'CmDEV + ' + Me.CmDEV.Name = "CmDEV" + Me.CmDEV.Size = New System.Drawing.Size(61, 4) + ' + 'TmProgSec + ' + Me.TmProgSec.Interval = 1000 + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.OpenInGraphWindowToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(199, 70) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(198, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'OpenInGraphWindowToolStripMenuItem + ' + Me.OpenInGraphWindowToolStripMenuItem.Name = "OpenInGraphWindowToolStripMenuItem" + Me.OpenInGraphWindowToolStripMenuItem.Size = New System.Drawing.Size(198, 22) + Me.OpenInGraphWindowToolStripMenuItem.Text = "Open in Graph Window" + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(198, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'F_MAINForm + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1136, 638) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.SplitContainer1) + Me.Controls.Add(Me.StatusBAR) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(785, 485) + Me.Name = "F_MAINForm" + Me.Text = "VECTO" + Me.StatusBAR.ResumeLayout(False) + Me.StatusBAR.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPageGEN.ResumeLayout(False) + Me.TabPageGEN.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPageDRI.ResumeLayout(False) + Me.TabPageDRI.PerformLayout() + Me.TabPgOptions.ResumeLayout(False) + Me.TabPgOptions.PerformLayout() + Me.GrBoxBATCH.ResumeLayout(False) + Me.GrBoxBATCH.PerformLayout() + Me.PanelOptAllg.ResumeLayout(False) + Me.PanelOptAllg.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.PnDeclOpt.ResumeLayout(False) + Me.PnDeclOpt.PerformLayout() + Me.TabPageDEV.ResumeLayout(False) + Me.ConMenFilelist.ResumeLayout(False) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.CmOpenFile.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents StatusBAR As System.Windows.Forms.StatusStrip + Friend WithEvents ToolStripLbStatus As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPageGEN As System.Windows.Forms.TabPage + Friend WithEvents TabPageDRI As System.Windows.Forms.TabPage + Friend WithEvents ButtonGENadd As System.Windows.Forms.Button + Friend WithEvents ButtonGENremove As System.Windows.Forms.Button + Friend WithEvents ButtonDRIremove As System.Windows.Forms.Button + Friend WithEvents ButtonDRIadd As System.Windows.Forms.Button + Friend WithEvents ButtonGENopt As System.Windows.Forms.Button + Friend WithEvents ButtonDRIedit As System.Windows.Forms.Button + Friend WithEvents ConMenFilelist As System.Windows.Forms.ContextMenuStrip + Friend WithEvents SaveListToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents LoadListToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents LoadDefaultListToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ClearListToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker + Friend WithEvents ToolStripProgBarOverall As System.Windows.Forms.ToolStripProgressBar + Friend WithEvents LvGEN As System.Windows.Forms.ListView + Friend WithEvents ColGENpath As System.Windows.Forms.ColumnHeader + Friend WithEvents ColGENstatus As System.Windows.Forms.ColumnHeader + Friend WithEvents LvDRI As System.Windows.Forms.ListView + Friend WithEvents ColDRIpath As System.Windows.Forms.ColumnHeader + Friend WithEvents ColDRIstatus As System.Windows.Forms.ColumnHeader + Friend WithEvents ChBoxAllGEN As System.Windows.Forms.CheckBox + Friend WithEvents ChBoxAllDRI As System.Windows.Forms.CheckBox + Friend WithEvents TabPgOptions As System.Windows.Forms.TabPage + Friend WithEvents ChBoxModOut As System.Windows.Forms.CheckBox + Friend WithEvents ChBoxUseGears As System.Windows.Forms.CheckBox + Friend WithEvents ChBoxCyclDistCor As System.Windows.Forms.CheckBox + Friend WithEvents PanelOptAllg As System.Windows.Forms.Panel + Friend WithEvents LbAutoShDown As System.Windows.Forms.Label + Friend WithEvents ChBoxAutoSD As System.Windows.Forms.CheckBox + Friend WithEvents TbBOpath As System.Windows.Forms.TextBox + Friend WithEvents CbBOmode As System.Windows.Forms.ComboBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents ButBObrowse As System.Windows.Forms.Button + Friend WithEvents ChBoxBatchSubD As System.Windows.Forms.CheckBox + Friend WithEvents LvMsg As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents GrBoxBATCH As System.Windows.Forms.GroupBox + Friend WithEvents TabPageDEV As System.Windows.Forms.TabPage + Friend WithEvents LvDEVoptions As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader + Friend WithEvents CmDEV As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ColumnHeader7 As System.Windows.Forms.ColumnHeader + Friend WithEvents BtGENup As System.Windows.Forms.Button + Friend WithEvents BtGENdown As System.Windows.Forms.Button + Friend WithEvents BtDRIdown As System.Windows.Forms.Button + Friend WithEvents BtDRIup As System.Windows.Forms.Button + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtNew As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripDrDnBtTools As System.Windows.Forms.ToolStripDropDownButton + Friend WithEvents GENEditorToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents VEHEditorToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator4 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents OpenLogToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SettingsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripDrDnBtInfo As System.Windows.Forms.ToolStripDropDownButton + Friend WithEvents CreateActivationFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents AboutVECTOToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripProgBarJob As System.Windows.Forms.ToolStripProgressBar + Friend WithEvents TmProgSec As System.Windows.Forms.Timer + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents EngineEditorToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents GearboxEditorToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents UserManualToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ColumnHeader8 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader9 As System.Windows.Forms.ColumnHeader + Friend WithEvents UpdateNotesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SignOrVerifyFilesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ToolStripSeparator6 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents GrBoxSTD As System.Windows.Forms.GroupBox + Friend WithEvents PnDeclOpt As System.Windows.Forms.Panel + Friend WithEvents LbDecl As System.Windows.Forms.Label + Friend WithEvents GraphToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents OpenInGraphWindowToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents CbBatch As System.Windows.Forms.CheckBox + Friend WithEvents RbDev As System.Windows.Forms.RadioButton + Friend WithEvents RbDecl As System.Windows.Forms.RadioButton + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + +End Class diff --git a/VECTO/GUI/F_MAINForm.resx b/VECTO/GUI/F_MAINForm.resx new file mode 100644 index 0000000000000000000000000000000000000000..943d14a7a40928f3bfe89d5c136197d7eb8e0120 --- /dev/null +++ b/VECTO/GUI/F_MAINForm.resx @@ -0,0 +1,302 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="StatusBAR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>15, 12</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAAGkAAAAsCAYAAABmF5blAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAALuIAAC8GAUsgSLcAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfcChILJTNC/q9R + AAARd0lEQVR4Xu2bh19Vx7bH3//wrsm9N9WuscWCvdfYa2JEY4sNQbGb2EBEBMWeqIiFYkEQUJoamoCo + IBgFC4JSLKBgAREQLOut35wz230qB/S+p+/D+nx+n8PZe2b27PnuNbPW7MN/UZ199FYH6ROwOkifgNVB + +gSsDtJ72Nu3b7V/1cxQryZ1FUioVFrxggqeFVqkyldVBhd6w98fPisyWr56FXHdQlFfqNhQj4ofKyos + gZ4IFUHPn9JjoWf0pBQqpqfQixJ6xiouey5UUl5Kz1m419KKMnrBKntZTuUvK6i8soIqKl/Sy6pKvj+o + iqpevaJXr1/R6zevWW/4HiHNID98+JBycnMoNzfXYuWw8vLy6PXr1xaDUiC94Q5EXD5LvZ2sqbvjeLPq + s24i+SWG6lwEf1/Nu0ljtsw1Uudn6mFCPVm91k4Q6s3qw9fvy+33XTeJ+jlPogHrJ9NAlyn0w4ZpNMT1 + Vxq6cSaN2DSLRm+eQ+O22tL47fNp4s6FNGXXEpru8RvN9lxFdgccaYG3My077Eorj20mx+PbyeXELnIP + 9aTtEV60O/Iw7Y/1J9+EYPK/EE4nLkXSqb/PUsy183QuI4Uu3b7K95JBGQ/uUM6ju3T/yUPxMBQzbACt + rKqiipcvycfXlwKDAiksPLxGOnr0KIWEhlBZWZlFoHQ8KTM/h7o7/ET/PbNDtbI76MhP3EtRDwJk3Pjn + czoZKW9F/5gFddTKiurxsc/483P+/hnr89md6J+sf83pTP+26SL0pW1X+tquO30zryfVn9+bGi3oS00W + 9afmSwZSq6U/0PfLh1KHlSOpy+pxAnhfhjpow1QBcSw/LNY7FtDU3ctopudKmndwLS3xdaGVfu7kFLiD + 3EI8aPupg+QRdYS84oLI73wYnUyJpDNX4uns9YuUlHWFrubeoFsMKrfwPhU8LWTPfCY8D54GSEd4sEtL + S5UxsFQYq1OnT1FQcDA9e/ZMHDNnOpDg2quObVEGVzOwhsI5DMrdogfKhfGEzfD4XVN31ru66nbqze4o + BFD1ZjIcFiAJ6UH6Ym5XhtTNKKTvBKTBDGmYAqnnWoa0fhJ7nBYSe5n1Tg2kWexd87wAaYMW0k7aGLKX + IXlpIQVqIUUxpASGlPQOUr4aUrFRSLUxjFlcXBx7VChl52Qr42jMdAIHFIq9foGaLOxfLaSv7XpQBE8R + svEb97Ko3e8jTdaTgHQgqQC9g6TxIh1IdvqQBmkhsSet0IU0yFUDCVPhRAlpnxrSZnIKYkihGkh7GZI3 + e9Kx8+EaSFcTKO6GhHTzHSReLwGprKL8g0GC0tLSBKiUlBTlmL4ZQMLi+sufi7WDbRoUhCdSLoCHEk7Q + v3hwLYUEQGpIAATJqe4dpB4CUgN9SMsGU9vfhpHVylHUdY0GUj94kus0GuE+WwtpIU3bs5xmM6T5DGnp + oQ20iiGt00LaISAd1UDitSmEIf0lICVTEtYlhpTJkPKKPjwkaRi7+w8eCFDR0dFiKtQHZQAJhbzOBpod + cAjnRmyaTU84mqrgtcn2gIPR8vKYGlI9NSCWBGQK0rc83TWw7yMgNV00QEBqLSANZ0ijNZCcJjCkX2iw + 63QB6cdtdjTpDwlpNdl7O9GyQ648nW8m56A/aBND2nnam/ZGHyUfhoQAIiQlmiGdo3iGlMyQ0jgQysrP + ZkgPROT57AVD4mn9Q0KCYdzRTiiDCo8IpyoOTNSgdCDBcDKbIxpEedVBar54oLiZW3wjHVeOMSiP7waQ + GIo+JLUnqae7r2y7ayH1ooYMqfFChrR4ALXQQmr3+3DquGo0dXP4kXoxpP6A5DadRrrP0UJaxBHfcpqz + H5DWiWhvNa+5zsF/kHuYp4DkGe1HPvHBFHAxgkJTYygyLZHib17iCC+N0jnCyyrIFmvvI04LEMrL6O7l + B4QEw7i/4pggIiJCeNWLFy8UUEYhIS9Ye3wH/YMjMFOgcPwzHvQ9kUdEOP5vHlRTZSGzkFgaQDKy66pA + +kYHUj9qxpBacmTXZtkQAanTqjEM6Sfqvc6aBrhMpiFuv9IoDs9/2j5PTNu/cjBjs38NLfBxpuWH3WiN + /1ZaH/wnbQ7bR3+c8aF9McfIN/4EHU86RWGXYymKISUwpJQ7aXTtbgbdLsihe4/zOTfTQCoHJM6fPjQk + GMYeCucwPfF8omlIMJxMzEhlTxlkduBxbsqupSI3sQiQFpI+IH1IylSnhVR/fi+e6jSQ4L0CEgcN7VeM + oM6rxoq0oY8W0tCNMziHshH502RA2ruC5vJUvJAh/XZkIzkwJJcTu2lL+H7684wv7Y/x5/X0JAUmnaZw + zhOj0zW5UuqddLp+9xbdfpjLkAqokBNorNdIev9TkGAY+xs3b1JsbGz1kJCR4ymsDlJ97VNuESSGoUBi + L1UD0p/qTAcNMvyWkd1YTgc4wXaeSAM3TKFhDAkJ9c877EWCO4Mh2XJOt8hnPf1+ZBM5BmyjDSf30NaI + A7Trr0N0IDaADp8LoaDkMxytxlFM+gVKvJVKl7OvccSaSXce5olkFrsaJWWlYkcCqcp/ChLsJiCdrQYS + DAWO8jT2xdxuJgEgH8I5cV5JWA2nyHqsL3jQv2TP+HJud/qK24TgKcJbbHlKQ5jNwCFAEdPbgn7UlNMB + eE8L9p5Wy4eIYAFwlGlOGzAgqhu+aaZIYiWgmQCk8iI51bnzVLeTpzpPbdCgH35fzPybrnCOlPHgNuUU + 3qP8p4/ElhO2kz46SJiLB7pMNeslxqRfHnkLBiI0NdpAYUIxvB7EUDh/huOTFcHrA/IwbNecvhLHiudB + jKe/0hJ4cT9HUemJYhsn9vpFOssDG3czmRIyLgkvuMCDnHT7Cl3idSWVPeLvnBsiUrvG09eN+1liuyeL + 1xp4SQ7nQHlF+cJbEGZjWgMQhNslPL1hfw9THHZXqniaQ8qBPbzKykqxvfN/DgkdcjvpITyhpqCk/snr + jAfnIjL+//+ijwISDIXwNLbmSKqmkLAG4bO7w3gRosubQ5h59+5dyvuklUclJSXk5+f3cUDC9v1cDmFr + Cwl5CUJ62d7jx48pKiqKQsPC6GRICAUGBtLx48eNCjvMKGepkF8EBXNiGhBAAccDKPjECT4ealDOtCwr + i4QzOzub0tPThUeZM/lwYibRn01MWY0gwVAwiMNT5CyWgpKAmi0aKHaU1R3C38ioE+ITyH3jJppna0ez + Zsw0Kk+PvWKBRh1Two2jTGpKKu3d40FLFi2mGdOmc/0ZtHrlSjp65CjduXNH2b4ypXv37lHAMX/y9ztW + vY4doxyGJAdd32SbuM9bGRkUcvIk7dm1m7Zt2Ur7PfdRVGQk5efna+oaqV8rSHgJN3zjTIsgCUBaSFN3 + LxURkbwYPvHk7f5zF3Wx6kgNvv6G6n/1tfjUF47b2tgIAMYMbUEYrPXOztStcxdq+M23op5aTRo0pJHD + hpOPlzeVl5crfVEbjkVwAtmiWXNqzOVRx5yaN24igJpqC7rGXubk6Ei9e/Skpo0ai75Bjb6tL64zbvQY + 8j7oRc+fPzdop8aQYHhitoYfEDnOu3dDhhK5EMR/I3THpqu6A/g78q9IsmrXXhlEY4CkbG3mGoWEdqDr + 167RnJmzRFlT7cnjLXlgNm9yNwoK3yPCwqkZD6Z+fWNqXL+B8Chj7WCs4DljRo4SZU3dI44DtsOq1eIN + r7qtWkFCYeQN7bWvIqQM4GiFYwPWTxEbk+qLI2hY6+BI9Y102JhMeRLaLCwsJHu7eUpZ0dZXhu2prwFQ + 8CgMpNrQ3oeCdOb0aerbq7fOtc0J3oUxUe/V1RoSkrgF3uuqBSR3FFyCd4mAQX0j6Mi0KVMMBq9H1240 + avgIGj1ipI62uLsbhYRB3rfXU0xNsi18Qp15Gh0xdBgN7NdfDLo8LsuMHD5cLPrqfuFvDG7Xjp2o/fdt + hTAtyT5KyXOd2neg4MAggzbu379Pv1hPVK6nVpuWrciqbTulT/I4HtgWTZuRH4fzsr1aQYKhAhJPvHwz + BwhTXeulQ8RLM/VNwDD/Wo//WaeTbVu3oUCO5IoKi+hxESeSKhUXFxu0ge+PHj2i8eN+FO1Ioa2F9vaU + lJQkIkgEAvt4kbZq1045j094gY83e5OqXbRZyn1Lu3qVlUZJFy8q7ct6gwcOorizZ8V5lNN/7Y2/fX18 + RPvy3iBMaatXrqL4uDjxgs+PA5mfxo5T2pbtT544iZ48eSLaeS9IRSVPxbaLASABR6PPeM2y2bdabOmr + bwKGgdCHBHefPnUaOa5xICd2e6l1a514sJIM2sB3HG/bqrXOIGIhzsrKEuelEF1tcnMTC3czHqyWzZuL + erhWRUWFtkWNyTow/EBk2uR3Ho9PeOcThg9Tl5VWUV5BdnNtlfuS9+bs5CRyKVkHwkMwZNAPOuOAh1Xe + b60hwTDNYFPy8zmdTQLCPtzxi6eUC6jNGCT8rf4uJZ54Xj/028F3LMxNGzZS6mEw3FxdDX4mhb/v37tP + wUFBInqDJ6RcukSZmZkG65LaqoNkzAofFdKwwUN07qVbp87C6/T7hGtvctso+i3LImo8zvkdzr8XJNHA + g9vUZc04jTdJOFIMaQSH6tgDU3dMmlFIkOq7FNYEU5CwaAOirNeI/0b+YawspkzM9z5eXnTk8GEK8Pen + 2JgY4WWmrKaQcB1MrwgY1PcAaEVFRcbvgXOtJg0bKmVxvwcPHBDnMnlGSE5OVurVGFJlVaXYUcbaIwGp + Xzls41Dd1FOqDwmfgITFvicHD2ohvwjw1zxZasP3sJBQHU+CnJ3WGfWkxHOJ1EEbCAAsZDN7tghiTFlt + IBVwcjqof3+dPvXr3ZvycnMN+gTt9fBQghPUwd+HDx0S5zB+CJhkvRpBgqEi3l42WdBPeI4EBFmtGCV+ + vCEb1zf9wAGfmJsvnL8gIi4kplL4jv0x/bbwHb+sad/me4N2cBw3iDIQBnutg4NSRpZ337hRADVltZnu + cG9Y/JU6LKyDIkjR9gmGTwQ+v06brtM+IryoyCil72qrFST8IAO/xFF7EbTYx0Vs6etfRBoWUHWIis/O + HaxEqO3N0xFuSBFPdZiW9AcTbWOwJllb67QD4RgixWuc5J5PPC+8CzevLtemRUvRrqk+wmoDCSC2bt4s + yksB1IC+/cRa8/TpU9FuFq+HCIykF8n2B/UfQLk5OdrWdK3GkGBv374RbzS/tOkq4GCaa2zfV/kdnimD + Cy+0X6DcvOwgFlB0Wl/Y1zOVzB7y8RXhrXogoe+aNBV5DKI4eVx93naODZUUG3qo2moDCe1dTr1MfXr2 + UupJtW7Rgn4cM5am/jJZ5G/qgEEKUSiSfWP9qiWkt3S7IFf8dlt60fht88WP5c3dPM75evuISEa/k8Zk + blsIAcGK5b+JcupBwd9qqY/14XUuJjrabB9htYEEe8Nev3vXLoOdC3U76uPiGAszwG1t+mDMag1J/KIo + YLvwIngUfmSonnuNGc4VFBTQfLt54mky1mm1TEGCoS38d8KyJUsEdLRltD3t8V7de4hEsro+wmoLCe1i + Snd12SC2oIz2RyvAwSfyOyS65vpUK0gwNIofEeKXOz3Zo+SLPXOG8xD+BQSvKXDj2CrBlsn3esKxZUuW + moQEQ1vYXfDYvUe01ZynOjV8TJkIMDDFRUdFWQQIVvaijOZxYqruy8QJE8S1qjO0D8jYfRg+ZKjogxqO + VKvm39HC+fYib5PjYsreCxJeQ+BH+qv9t4r3/5aY7BDm34L8AkpPS6dLnBMkJyUZCO9izHUehvMILvC2 + 9/SpU+I1yIb1LiKCw9SK7N5YlGjOAPP69euqviTT1StXzEaEasO10AaChAP799N8XlvhMXhlMmmCtYg4 + 0VdL+/VekNAR/EjkfOblGg0CDOUtkSWmLo8+YTAh9fGamLqeviw1dR1sQWGvD3tzCNVlgGBpe7WGBMNF + sDbhv9/4m+ZgnX1wey9Idfa/Y3WQPgGrg/QJWB2kj96I/gcOkiuMy/nVgwAAAABJRU5ErkJggg== +</value> + </data> + <metadata name="ConMenFilelist.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>219, 14</value> + </metadata> + <metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>357, 12</value> + </metadata> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>524, 13</value> + </metadata> + <metadata name="CmDEV.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>126, 9</value> + </metadata> + <metadata name="TmProgSec.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>619, 13</value> + </metadata> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>865, 12</value> + </metadata> + <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>49</value> + </metadata> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP39 + /QDg6NsB/v7+AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD+/v4A1uDQAIildvn19/MB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP7+/gCdtI51RHEm/sbUvQL+/v4A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A7PDpAGOJS/44aBn/jal82f39/AH///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP7+/gC3ya0BPGse/jdnGP9Vfjv/4OfcAf///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A+vv6AH+ea/42Zhf/N2cY/zhnGf+nvJo0/v7+AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP/+/gDU3s0BSHQs/jZmF/82Zhf/NmYX/22Q + V//y9fAB////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+AJqyioo1Zhb/NmYW/zZm + F/82Zhf/P20h/8DPtwL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDr7+cAX4ZF/jVm + Ff82ZhX/NmYW/zZmFv82Zhf/h6N0//z9/AH+/v4A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+ALTG + qAE6ahn+NmcV/zZnFf82ZhX/NmYV/zVlF/9PeTP/2+TWAf7+/gD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD4+vgAeppl/jVmFP82ZxX/NmcV/zZnFf82ZhX/NmYV/zZmFv+huJNb/v7+AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A/v7+AM/byAFGcyj+NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/NWYV/2eMT//v8+0B////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD+/v4Alq+FpTRlE/81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX/PWwd/7zM + sQL+/v4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AOju5QBbg0H+NWUU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZn + Ff81ZhT/gqBu//v8+gH///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD+/v4AscOlAThoGP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/zVmFP9Ldy7/1+DQAf7+/gD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////APj59wB2l2H+NGUT/zVmFP81ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVmFf+ctI18/v7+AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD+/v4AzdnFAURxJf41ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NWYU/2KISf/s8ekB////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/gCUroOxNGUT/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/O2ob/7fIqwL+/v4A/v7+AP39 + /QD9/v0A/f79AP3+/QD9/v0A/f79AP3+/QD9/v0A/f79AP///wD///8A////AP///wD///8A5uziAFmB + Pv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf81ZhT/eppl/9Te + zQLZ4tMB2eLTAdni0wHZ4tMB2eLTAdni1AHZ4tQB2eLUAdrj1AHa49UB////AP///wD///8A////AP7+ + /gCvwqIGN2cW/jVmFP81ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZn + Ff81ZhT/RHIm/0RxJv9EcSf/RXEo/0VyKP9Fcin/RnMq/0d0K/9IdCv/SXUs/0t3Lv////8A////AP// + /wD//v8A9vj1AHSWXv40ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZhX/U3w3/jRlE/81ZhT/NWYU/zVm + FP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdnGP83Zxj/OWgZ/zppGv86ahv/PGwd//// + /wD///8A////AP7//gDK1sIBQnAk/jRlE/81ZhT/NWYU/zVmFP81ZhT/NWYU/0dzKf+gt5FlP24g/jVm + FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpq + G/87axz/////AP///wD///8A/f79AI+qfsw0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZRT/aY1R/+Lp + 3gFfhkX+NGUT/zVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zho + Gf85aRr/Omob/ztrHP////8A////AP///gDj6t8AVn88/jRlFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zRl + E/+Wr4Wl/f39AZCqfss0ZRP/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZm + F/83Zxj/N2cY/zlpGv86ahv/O2sc/////wD///8A/v7+AKzAnxc3Zxb+NWYU/zVmFP81ZhT/NWYU/zVm + FP81ZhT/PWwd/8PSugH+/v4AwtC4AD1sHf41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZm + Fv82Zhf/NmYX/zdnGP83Zxj/OWka/zpqG/86ahv/////AP///wD1+PQAcpRc/jRlE/81ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP9XgDz/6e7mAf///wDp7uYAWYE+/jVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZn + Ff82ZhT/NmYV/zZmF/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/////8A/v7+AMjVvwFBbyL+NGUU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NGUT/4Ggbf78/PwB////AP39/QCJpXb4NGUT/zVmFP81ZhT/NGUT/zVm + FP82ZxX/NmcV/zZmFf82ZhX/NmYX/zZmF/83Zxf/N2cY/zhoGf86aRr/Omob/////wD9/v0Aj6p90TZn + Ff42ZxX+NmcV/jZnFf42ZxX+NmcV/jZnFf44aBj+r8KiBv7+/gD///8A/v7+ALrKrwA7ahv9NmcV/jZn + Ff42ZxX+N2cW/jdoFv43aBb+N2gW/jdnF/43Zxj+OGcZ/jhoGf45aBr+Omob/jtrHP48ax3+////APr7 + +gDB0LcAscSkALHEpACxxKQAscSkALHEpACxxKQAscSkALTGqADu8uwA///+AP///wD///8A8/bxALbH + qgCxxKQAscSkALHEpACxxKQAscSlALHEpQCxxKUAscSlALHEpQCxxKUAscSmALLEpgCyxaYAs8WnALPF + pwD5+vgA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD4+vcA+Pr3APj69wD9/fwA////APj69wD4+vcA+Pr3APj69wD4+vcA+fr4APn6 + +AD5+vgA+fr4APn7+QD6+/kA+/v6APv7+wD7/PsA/Pz8AP39/AD9/v0A/v/+APr6+gD6+voA+vr6APr6 + +gD6+voA////AP///wD///8A////////////+/////v////x////8f///+H////g////wP///8B////A + f///gH///4A///8AP///AB///wAf//4AH//+AA///AAP//wAB//8AAAA+AAAAPgEAADwBAAA8AQAAPAO + AADgDgAA4A4AAMAfAAD///////////////8= +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb new file mode 100644 index 0000000000000000000000000000000000000000..820ba2b1b0fabcd33f8f33c27522fdad0aecdef7 --- /dev/null +++ b/VECTO/GUI/F_MAINForm.vb @@ -0,0 +1,2452 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports System.Collections.Generic + +''' <summary> +''' Main application form. Loads at application start. Closing form ends application. +''' </summary> +''' <remarks></remarks> + +Public Class F_MAINForm + + Private JobListView As cFileListView + Private CycleListView As cFileListView + + Private LastModeName As String + Private ConMenTarget As ListView + Private ConMenTarJob As Boolean + + Private MODpath As String + Private MODVehList As Int32() + + Private CycleTabPage As TabPage + Private CycleTabPageVisible As Boolean + + Private ComLineShutDown As Boolean + + Private GUIlocked As Boolean + + Private CheckedItems As List(Of ListViewItem) + + Private DEVpage As TabPage + Private CmDEVitem As ListViewItem + + Private CheckLock As Boolean + Private GENchecked As Integer + Private DRIchecked As Integer + Private GENcheckAllLock As Boolean + Private DRIcheckAllLock As Boolean + + Private CbDeclLock As Boolean = False + + +#Region "SLEEP Control - Prevent sleep while VECTO is running" + + Private Declare Function SetThreadExecutionState Lib "kernel32" (ByVal esFlags As Long) As Long + + Private Sub AllowSleepOFF() +#If Not PLATFORM = "x86" Then + SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS Or tEXECUTION_STATE.ES_SYSTEM_REQUIRED) +#End If + End Sub + + Private Sub AllowSleepON() +#If Not PLATFORM = "x86" Then + SetThreadExecutionState(tEXECUTION_STATE.ES_CONTINUOUS) +#End If + End Sub + + Private Enum tEXECUTION_STATE As Integer + ''' Informs the system that the state being set should remain in effect until the next call that uses ES_CONTINUOUS and one of the other state flags is cleared. + ES_CONTINUOUS = &H80000000 + ''' Forces the display to be on by resetting the display idle timer. + ES_DISPLAY_REQUIRED = &H2 + ''' Forces the system to be in the working state by resetting the system idle timer. + ES_SYSTEM_REQUIRED = &H1 + End Enum + +#End Region + +#Region "FileBrowser Init/Close" + Private Sub FB_Initialize() + FB_Init = False + fbFolder = New cFileBrowser("WorkDir", True) + fbFileLists = New cFileBrowser("FileLists") + fbVECTO = New cFileBrowser("vecto") + fbVEH = New cFileBrowser("vveh") + fbMAP = New cFileBrowser("vmap") + fbDRI = New cFileBrowser("vdri") + fbFLD = New cFileBrowser("vfld") + fbENG = New cFileBrowser("veng") + fbGBX = New cFileBrowser("vgbx") + fbACC = New cFileBrowser("vacc") + fbAUX = New cFileBrowser("vaux") + fbGBS = New cFileBrowser("vgbs") + fbRLM = New cFileBrowser("vrlm") + fbTLM = New cFileBrowser("vtlm") + fbTCC = New cFileBrowser("vtcc") + fbCDx = New cFileBrowser("vcdx") + + fbVMOD = New cFileBrowser("vmod") + + + '------------------------------------------------------- + fbFileLists.Extensions = New String() {"txt"} + fbVECTO.Extensions = New String() {"vecto"} + fbVEH.Extensions = New String() {"vveh"} + fbMAP.Extensions = New String() {"vmap"} + fbDRI.Extensions = New String() {"vdri"} + fbFLD.Extensions = New String() {"vfld"} + fbENG.Extensions = New String() {"veng"} + fbGBX.Extensions = New String() {"vgbx"} + fbACC.Extensions = New String() {"vacc"} + fbAUX.Extensions = New String() {"vaux"} + fbGBS.Extensions = New String() {"vgbs"} + fbRLM.Extensions = New String() {"vrlm"} + fbTLM.Extensions = New String() {"vtlm"} + fbTCC.Extensions = New String() {"vtcc"} + fbCDx.Extensions = New String() {"vcdv", "vcdb"} + + fbVMOD.Extensions = New String() {"vmod"} + + + End Sub + Private Sub FB_Close() + fbFolder.Close() + fbFileLists.Close() + fbVECTO.Close() + fbVEH.Close() + fbMAP.Close() + fbDRI.Close() + fbFLD.Close() + fbENG.Close() + fbGBX.Close() + fbACC.Close() + fbAUX.Close() + fbGBS.Close() + fbRLM.Close() + fbTLM.Close() + fbTCC.Close() + fbCDx.Close() + fbVMOD.Close() + End Sub + +#End Region + +#Region "VECTO-Worker" + + 'VECTO-Launcher + Public Sub VECTO_Launcher() + Dim ProgOverall As Boolean + Dim GEN0 As cVECTO + + 'Called when VECTO already running + If VECTOworker.IsBusy Then + GUImsg(tMsgID.Err, "VECTO is already running!") + Exit Sub + End If + + 'Delete GENlist-Selection + Me.LvGEN.SelectedItems.Clear() + + 'If more than 100 calculations, ask whether to write by-second results + If Cfg.BatchMode And ((Me.LvGEN.CheckedItems.Count) * (Me.LvDRI.CheckedItems.Count) > 100) And Me.ChBoxModOut.Checked Then + Select Case MsgBox("You are about to run Batch Mode with " & (Me.LvGEN.CheckedItems.Count) * (Me.LvDRI.CheckedItems.Count) & " calculations!" & ChrW(10) & "Do you still want to write modal results?", MsgBoxStyle.YesNoCancel) + Case MsgBoxResult.No + Me.ChBoxModOut.Checked = False + Case MsgBoxResult.Cancel + GUImsg(tMsgID.Normal, "Aborted by User") + Exit Sub + End Select + End If + + 'Status + Status("Launching VECTO...") + + + 'Define Job-0list + + 'Define File / Cycle list + SetJobList() + + 'Zyklus-Liste definieren (falls nicht BATCH-Modus wird in SetCycleList nur die Liste gelöscht und nicht neu belegt) |@@| Define Cycle-list (if not BATCH mode in SetCycleList deleted only the list and not reassigned) + SetCycleList() + + If JobFileList.Count = 0 Then + GUImsg(tMsgID.Err, "No job file selected!") + Exit Sub + End If + + 'Check whether Overall-progbar is needed + If Cfg.BatchMode Or JobFileList.Count > 1 Or Cfg.DeclMode Then + ProgOverall = True + Else + GEN0 = New cVECTO + GEN0.FilePath = JobFileList(0) + If Not GEN0.ReadFile Then + GUImsg(tMsgID.Err, "Failed to job file (" & fFILE(JobFileList(0), True) & ")!") + Exit Sub + End If + ProgOverall = (GEN0.CycleFiles.Count > 1) + End If + + 'Launch through Job_Launcher + Job_Launcher(ProgOverall) + + End Sub + + 'Lock certain GUI elements while VECTO is running + Private Sub LockGUI(ByVal Lock As Boolean) + GUIlocked = Lock + + Me.PanelOptAllg.Enabled = Not Lock + Me.GrBoxSTD.Enabled = Not Lock + Me.GrBoxBATCH.Enabled = Not Lock + + Me.BtGENup.Enabled = Not Lock + Me.BtGENdown.Enabled = Not Lock + Me.ButtonGENadd.Enabled = Not Lock + Me.ButtonGENremove.Enabled = Not Lock + Me.LvGEN.LabelEdit = Not Lock + Me.ChBoxAllGEN.Enabled = Not Lock + + Me.BtDRIup.Enabled = Not Lock + Me.BtDRIdown.Enabled = Not Lock + Me.ButtonDRIadd.Enabled = Not Lock + Me.ButtonDRIremove.Enabled = Not Lock + Me.LvDRI.LabelEdit = Not Lock + Me.ChBoxAllDRI.Enabled = Not Lock + + If DEV.Enabled Then + Me.LvDEVoptions.Enabled = Not Lock + End If + + End Sub + + 'Define job file list + Private Sub SetJobList() + Dim LV0 As ListViewItem + Dim x As Integer + + JobFileList.Clear() + CheckedItems.Clear() + + x = -1 + For Each LV0 In Me.LvGEN.CheckedItems + x += 1 + LV0.SubItems(1).Text = "" + CheckedItems.Add(LV0) + SetCheckedItemColor(x, tJobStatus.Queued) + JobFileList.Add(fFileRepl(LV0.SubItems(0).Text)) + Next + + End Sub + + 'Define cycle list (BATCH mode only) + Private Sub SetCycleList() + Dim LV0 As ListViewItem + + JobCycleList.Clear() + + If Cfg.BatchMode Then + For Each LV0 In Me.LvDRI.CheckedItems + JobCycleList.Add(fFileRepl(LV0.SubItems(0).Text)) + Next + End If + + End Sub + + 'Job Launcher + Private Sub Job_Launcher(ByVal ProgOverallEnabled As Boolean) + + If VECTOworker.IsBusy Then Exit Sub + + 'Load Options from Options Tab + SetOptions() + + 'Save Config + Cfg.ConfigSAVE() + + If DEV.Enabled Then DEV.SaveToFile() + + 'Reset Msg-output + ClearMSG() + + 'Button switch + Me.Button1.Text = "STOP" + Me.Button1.Image = My.Resources.Stop_icon + + 'Disable Options + LockGUI(True) + + 'ProgBars start + If ProgOverallEnabled Then + Me.ToolStripProgBarOverall.Value = 0 + Me.ToolStripProgBarOverall.Style = ProgressBarStyle.Marquee + Me.ToolStripProgBarOverall.Visible = True + End If + + ProgBarCtrl.ProgJobInt = 0 + ProgSecStart() + + 'BG-Worker start + VECTOworker.RunWorkerAsync() + + End Sub + + 'Abort Job + Private Sub JobAbort() + Me.Button1.Enabled = False + Me.Button1.Text = "Aborting..." + Me.Button1.Image = My.Resources.Play_icon_gray + VECTOworker.CancelAsync() + End Sub + + +#Region "BackgroundWorker Events" + + 'DoWork - Start Calculations + Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork + + 'Prevent SLEEP + AllowSleepOFF() + + If SetCulture Then + Try + System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") + Catch ex As Exception + GUImsg(tMsgID.Err, "Failed to set thread culture 'en-US'! Check system decimal- and group- separators!") + End Try + End If + + e.Result = VECTO() + + + End Sub + + 'Progress Report - Progressbar, Messages, etc. + Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged + Dim x As cWorkProg + x = e.UserState + + Select Case x.Target + Case tWorkMsgType.StatusListBox + MSGtoForm(e.UserState.ID, e.UserState.Msg, x.Source, x.Link) + + Case tWorkMsgType.StatusBar + Status(e.UserState.Msg) + + Case tWorkMsgType.ProgBars + Me.ToolStripProgBarOverall.Value = e.ProgressPercentage + ProgSecStart() + + Case tWorkMsgType.JobStatus + CheckedItems(x.FileIndex).SubItems(1).Text = x.Msg + SetCheckedItemColor(x.FileIndex, x.Status) + + Case tWorkMsgType.CycleStatus + Try + Me.LvDRI.CheckedItems(x.FileIndex).SubItems(1).Text = x.Msg + Catch ex As Exception + End Try + + Case tWorkMsgType.InitProgBar + Me.ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous + + Case Else ' tWorkMsgType.Abort + JobAbort() + + End Select + End Sub + + 'Work completed + Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted + + Dim Result As tCalcResult + + 'Progbar reset + Me.ToolStripProgBarOverall.Visible = False + Me.ToolStripProgBarOverall.Style = ProgressBarStyle.Continuous + Me.ToolStripProgBarOverall.Value = 0 + ProgSecStop() + + 'So ListView-Item Colors (Warning = Yellow, etc..) are correctly visible + Me.LvGEN.SelectedIndices.Clear() + + Result = e.Result + + 'ShutDown when Unexpected Error + If e.Error IsNot Nothing Then + MsgBox("An Unexpected Error occurred!" & ChrW(10) & ChrW(10) & _ + e.Error.Message.ToString, MsgBoxStyle.Critical, "Unexpected Error") + LogFile.WriteToLog(tMsgID.Err, ">>>Unexpected Error:" & e.Error.ToString()) + Me.Close() + End If + + 'Options enable / GUI reset + LockGUI(False) + Me.Button1.Enabled = True + Me.Button1.Text = "START" + Me.Button1.Image = My.Resources.Play_icon + Status(LastModeName & " Mode") + + 'Command Line Shutdown + If ComLineShutDown Then Me.Close() + + 'Auto Shutdown + If Me.ChBoxAutoSD.Checked Then + Me.ChBoxAutoSD.Checked = False + If Not Result = tCalcResult.Abort Then + If F_ShutDown.ShutDown Then + GUImsg(tMsgID.Warn, "Shutting down...") + Me.Close() + End If + End If + End If + + 'SLEEP reactivate + AllowSleepON() + + End Sub + +#End Region + +#End Region + +#Region "Form Init/Close" + + 'Initialise + Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Dim x As Integer + + GUIlocked = False + CheckLock = False + GENcheckAllLock = False + DRIcheckAllLock = False + DRIchecked = 0 + GENchecked = 0 + + CheckedItems = New List(Of ListViewItem) + + 'Load Tabs properly (otherwise problem with ListViews) + For x = 0 To Me.TabControl1.TabCount - 1 + Me.TabControl1.TabPages(x).Show() + Next + + CycleTabPageVisible = True + CycleTabPage = Me.TabPageDRI + + DEVpage = Me.TabPageDEV + Me.TabControl1.Controls.Remove(DEVpage) + + LastModeName = "" + + ComLineShutDown = False + + 'File Browser Initialise - Comment Added TB 25/9/14 + FB_Initialize() + + 'File Form Title - Including Version - Comment Added TB 25/9/14 + Me.Text = "VECTO " & VECTOvers + + + 'FileLists_________________________________________________ + + JobListView = New cFileListView(MyConfPath & "joblist.txt") + JobListView.LVbox = Me.LvGEN + CycleListView = New cFileListView(MyConfPath & "cyclelist.txt") + CycleListView.LVbox = Me.LvDRI + + JobListView.LoadList() + + 'Load GUI Options (here, the GEN/ADV/DRI lists are loaded) + LoadOptions() + + 'Resize columns ... after Loading the @file-lists + Me.LvGEN.Columns(1).Width = -2 + Me.LvDRI.Columns(1).Width = -2 + Me.LvMsg.Columns(2).Width = -2 + + 'Initialize BackgroundWorker + VECTOworker = Me.BackgroundWorker1 + VECTOworker.WorkerReportsProgress = True + VECTOworker.WorkerSupportsCancellation = True + + 'Set mode (Batch/Standard) + ModeUpdate() + + 'License check + If Not Lic.LICcheck() Then + MsgBox("License File invalid!" & vbCrLf & vbCrLf & Lic.FailMsg) + If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then + MsgBox("Activation File created.") + Else + MsgBox("Failed to create Activation File! Is Directory Read-Only?") + End If + Me.Close() + Else + GUImsg(tMsgID.Normal, "License File validated.") + If Lic.TimeWarn Then GUImsg(tMsgID.Warn, "License expiring date (y/m/d): " & Lic.ExpTime) + End If + + DEV.Enabled = Lic.LicFeature(9) + + If DEV.Enabled Then + DEV.LoadFromFile() + LoadDEVconfigs() + End If + + DeclOnOff() + + End Sub + + 'Declaration mode GUI settings + Private Sub DeclOnOff() + + If Cfg.DeclMode Then + Me.Text = "VECTO " & VECTOvers & " - Declaration Mode" + Me.CbBatch.Checked = False + Cfg.DeclInit() + Else + Me.Text = "VECTO " & VECTOvers + End If + + If Cfg.DeclMode Then + LastModeName = "Declaration" + Else + If Cfg.BatchMode Then + LastModeName = "Batch" + Else + LastModeName = "Engineering" + End If + End If + + Status(LastModeName & " Mode") + + Me.LoadOptions() + + Me.LbDecl.Visible = Cfg.DeclMode + + Me.PnDeclOpt.Enabled = Not Cfg.DeclMode + + End Sub + + 'Shown Event (Form-Load finished) ... here StartUp Forms are loaded (DEV, GEN/ADV- Editor ..) + Private Sub F01_MAINForm_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Dim fwelcome As F_Welcome + + 'DEV Form + If DEV.Enabled Then + Me.TabControl1.TabPages.Insert(Me.TabControl1.TabPages.Count, DEVpage) + End If + + 'VECTO Init + Declaration.Init() + + 'Command Line Args + If Command() <> "" Then + CmdLineCtrl(My.Application.CommandLineArgs) + Else + If Cfg.FirstRun Then + Cfg.FirstRun = False + fwelcome = New F_Welcome + fwelcome.ShowDialog() + End If + End If + + End Sub + + 'Open file + Private Sub CmdLineCtrl(ByVal ComLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) + Dim bBATCH As Boolean + Dim bRUN As Boolean + Dim x As Object + Dim str As String + Dim ComFile As String = "" + Dim vecFiles As New List(Of String) + Dim driFiles As New List(Of String) + + bBATCH = False + bRUN = False + ComFile = sKey.NoFile + + 'Read Command-Line Args + For Each x In ComLineArgs + str = Trim(Replace(x.ToString, ChrW(34), "")) + Select Case UCase(str) + Case "-BATCH" + bBATCH = True + Case "-CLOSE" + ComLineShutDown = True + Case "-RUN" + bRUN = True + Case Else + Select Case UCase(fEXT(str)) + Case ".VECTO" + vecFiles.Add(fFileRepl(str)) + Case ".VDRI" + driFiles.Add(fFileRepl(str)) + Case Else + ComFile = fFileRepl(str) + End Select + End Select + Next + + 'Mode switch and load Driving Cycles + If bBATCH Then + Me.CbBatch.Checked = True + + If driFiles.Count > 0 Then + LvDRI.Items.Clear() + AddToCycleListView(driFiles.ToArray) + End If + + Else + Me.CbBatch.Checked = False + End If + + 'Load Vecto files or open editor (if only one file) + If vecFiles.Count > 0 Then + If vecFiles.Count > 1 Or bRUN Then + LvGEN.Items.Clear() + AddToJobListView(vecFiles.ToArray) + Else + ComFile = vecFiles(0) + End If + End If + + 'Run or open file editor if file is specified + If bRUN Then + VECTO_Launcher() + Else + If ComFile <> sKey.NoFile Then OpenVectoFile(ComFile) + End If + + End Sub + + 'Close + Private Sub F01_MAINForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + + 'Save File-Lists + SaveFileLists() + + 'Close log + LogFile.CloseLog() + + 'Config save + SetOptions() + Cfg.ConfigSAVE() + If DEV.Enabled Then DEV.SaveToFile() + + 'File browser instances close + FB_Close() + + End Sub + +#End Region + + 'Open file - Job, vehicle, engine, gearbox or signature file + Public Sub OpenVectoFile(ByVal File As String) + + If Not IO.File.Exists(File) Then + + GUImsg(tMsgID.Err, "File not found! (" & File & ")") + MsgBox("File not found! (" & File & ")", MsgBoxStyle.Critical) + + Else + + Select Case UCase(fEXT(File)) + Case ".VGBX" + If Not F_GBX.Visible Then + F_GBX.Show() + Else + F_GBX.JobDir = "" + If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal + F_GBX.BringToFront() + End If + F_GBX.openGBX(File) + Case ".VVEH" + If Not F_VEH.Visible Then + F_VEH.Show() + Else + F_VEH.JobDir = "" + If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal + F_VEH.BringToFront() + End If + F_VEH.openVEH(File) + Case ".VENG" + If Not F_ENG.Visible Then + F_ENG.Show() + Else + F_ENG.JobDir = "" + If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal + F_ENG.BringToFront() + End If + F_ENG.openENG(File) + Case ".VECTO" + OpenVECTOeditor(File) + Case ".VSIG" + OpenSigFile(File) + Case Else + MsgBox("Type '" & fEXT(File) & "' unknown!", MsgBoxStyle.Critical) + End Select + + End If + + End Sub + +#Region "Job file list" + +#Region "Events" + + Private Sub ButtonGENremove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGENremove.Click + RemoveJobFile() + End Sub + + Private Sub ButtonGENadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGENadd.Click + AddJobFile() + End Sub + + Private Sub ButtonGENoptions_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGENopt.Click + ConMenTarget = Me.LvGEN + ConMenTarJob = True + + 'Locked functions show/hide + Me.LoadListToolStripMenuItem.Enabled = Not GUIlocked + Me.LoadDefaultListToolStripMenuItem.Enabled = Not GUIlocked + Me.ClearListToolStripMenuItem.Enabled = Not GUIlocked + + Me.ConMenFilelist.Show(Control.MousePosition) + End Sub + + Private Sub ListViewGEN_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles LvGEN.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + If Not GUIlocked Then RemoveJobFile() + Case Keys.Enter + OpenJobFile() + End Select + End Sub + + 'Invoke Vecto Form on Double click - Edits Job : Comment Added TB 25/9/14 + Private Sub ListViewGEN_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles LvGEN.DoubleClick + If Me.LvGEN.SelectedItems.Count > 0 Then + Me.LvGEN.SelectedItems(0).Checked = Not Me.LvGEN.SelectedItems(0).Checked + OpenJobFile() + End If + End Sub + + Private Sub LvGEN_ItemChecked(sender As Object, e As System.Windows.Forms.ItemCheckedEventArgs) Handles LvGEN.ItemChecked + + If e.Item.Checked Then + GENchecked += 1 + Else + GENchecked -= 1 + End If + + If CheckLock Then Exit Sub + UpdateJobTabText() + + End Sub + + Private Sub ChBoxAllGEN_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChBoxAllGEN.CheckedChanged + + If GENcheckAllLock And Me.ChBoxAllGEN.CheckState = CheckState.Indeterminate Then Exit Sub + + CheckAllGEN(Me.ChBoxAllGEN.Checked) + End Sub + Private Sub CheckAllGEN(ByVal Check As Boolean) + Dim x As ListViewItem + + CheckLock = True + Me.LvGEN.BeginUpdate() + + For Each x In Me.LvGEN.Items + x.Checked = Check + Next + + Me.LvGEN.EndUpdate() + CheckLock = False + + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + End Sub + + Private Sub ListGEN_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles LvGEN.DragEnter + If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then + e.Effect = DragDropEffects.Copy + End If + End Sub + Private Sub ListGEN_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles LvGEN.DragDrop + Dim f As String() + f = CType(e.Data.GetData(DataFormats.FileDrop), Array) + AddToJobListView(f) + End Sub + + Private Sub BtGENup_Click(sender As System.Object, e As System.EventArgs) Handles BtGENup.Click + MoveItem(LvGEN, True) + End Sub + + Private Sub BtGENdown_Click(sender As System.Object, e As System.EventArgs) Handles BtGENdown.Click + MoveItem(LvGEN, False) + End Sub + +#End Region + + 'Remove selected file(s) from job list + Private Sub RemoveJobFile() + Dim lastindx As Integer + Dim SelIx() As Integer + Dim i As Integer + + If Me.LvGEN.SelectedItems.Count < 1 Then + If Me.LvGEN.Items.Count = 1 Then + Me.LvGEN.Items(0).Selected = True + Else + Exit Sub + End If + End If + + LvGEN.BeginUpdate() + CheckLock = True + + ReDim SelIx(LvGEN.SelectedItems.Count - 1) + LvGEN.SelectedIndices.CopyTo(SelIx, 0) + + lastindx = LvGEN.SelectedIndices(LvGEN.SelectedItems.Count - 1) + + For i = UBound(SelIx) To 0 Step -1 + LvGEN.Items.RemoveAt(SelIx(i)) + Next + + If lastindx < LvGEN.Items.Count Then + LvGEN.Items(lastindx).Selected = True + Else + If LvGEN.Items.Count > 0 Then LvGEN.Items(LvGEN.Items.Count - 1).Selected = True + End If + + LvGEN.EndUpdate() + CheckLock = False + + GENchecked = LvGEN.CheckedItems.Count + UpdateJobTabText() + End Sub + + 'Browse for job file(s) and add to job list with AddToJobListView + Private Sub AddJobFile() + Dim x As String() + Dim Chck As Boolean = False + + x = New String() {""} + + 'STANDARD/BATCH + If fbVECTO.OpenDialog("", True, "vecto") Then + Chck = True + x = fbVECTO.Files + End If + + If Chck Then AddToJobListView(x) + + End Sub + + 'Open file in list + Private Sub OpenJobFile() + Dim f As String + + If Me.LvGEN.SelectedItems.Count < 1 Then + If Me.LvGEN.Items.Count = 1 Then + Me.LvGEN.Items(0).Selected = True + Else + Exit Sub + End If + End If + + f = Me.LvGEN.SelectedItems(0).SubItems(0).Text + f = fFileRepl(f) + If Not IO.File.Exists(f) Then + MsgBox(f & " not found!") + Else + OpenVECTOeditor(f) + End If + End Sub + + 'Add File to job listview (multiple files) + Private Sub AddToJobListView(ByVal Path As String(), Optional ByVal Txt As String = " ") + Dim pDim As Int16 + Dim p As Int16 + Dim f As Int16 + Dim fList As String() + Dim fListDim As Int16 = -1 + Dim ListViewItem0 As ListViewItem + + 'If VECTO runs: Cancel operation (because Mode-change during calculation is not very clever) + If VECTOworker.IsBusy Then Exit Sub + + pDim = UBound(Path) + ReDim fList(0) 'um Nullverweisausnahme-Warnung zu verhindern + + '******************************************* Begin Update '******************************************* + Me.LvGEN.BeginUpdate() + CheckLock = True + + Me.LvGEN.SelectedIndices.Clear() + + If pDim = 0 Then + fListDim = Me.LvGEN.Items.Count - 1 + ReDim fList(fListDim) + For f = 0 To fListDim + fList(f) = fFileRepl(Me.LvGEN.Items(f).SubItems(0).Text) + Next + End If + + For p = 0 To pDim + + If pDim = 0 Then + + For f = 0 To fListDim + + 'If file already exists in the list: Do not append (only when a single file) + If UCase(Path(p)) = UCase(fList(f)) Then + + 'Status reset + Me.LvGEN.Items(f).SubItems(1).Text = Txt + Me.LvGEN.Items(f).BackColor = Color.FromKnownColor(KnownColor.Window) + Me.LvGEN.Items(f).ForeColor = Color.FromKnownColor(KnownColor.WindowText) + + 'Element auswählen und anhaken |@@| Element selection and hook + Me.LvGEN.Items(f).Selected = True + Me.LvGEN.Items(f).Checked = True + Me.LvGEN.Items(f).EnsureVisible() + + GoTo lbFound + End If + Next + + End If + + 'Otherwise: Add File (without WorkDir) + ListViewItem0 = New ListViewItem(Path(p)) 'fFileWD(Path(p))) + ListViewItem0.SubItems.Add(" ") + ListViewItem0.Checked = True + ListViewItem0.Selected = True + Me.LvGEN.Items.Add(ListViewItem0) + ListViewItem0.EnsureVisible() +lbFound: + Next + + Me.LvGEN.EndUpdate() + CheckLock = False + '******************************************* End Update '******************************************* + + 'Number update + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + + + End Sub + + 'Add File to job listview (single file) + Public Sub AddToJobListView(ByVal Path As String, Optional ByVal Txt As String = " ") + Dim p(0) As String + p(0) = Path + AddToJobListView(p, Txt) + End Sub + + 'Update job files counter in tab titel + Private Sub UpdateJobTabText() + Dim c As Integer + c = Me.LvGEN.Items.Count + + Me.TabPageGEN.Text = "Job Files ( " & GENchecked & " / " & c & " )" + 'Me.TabPageGEN.Text = "Job Files (" & c & ")" + + GENcheckAllLock = True + + If GENchecked = 0 Then + Me.ChBoxAllGEN.CheckState = CheckState.Unchecked + ElseIf GENchecked = c Then + Me.ChBoxAllGEN.CheckState = CheckState.Checked + Else + Me.ChBoxAllGEN.CheckState = CheckState.Indeterminate + End If + + GENcheckAllLock = False + + End Sub + +#End Region + +#Region "Cycle list (BATCH)" + + +#Region "Events" + + Private Sub ButtonDRIadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDRIadd.Click + AddCycle() + End Sub + + Private Sub ButtonDRIremove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDRIremove.Click + RemoveCycle() + End Sub + + Private Sub ButtonDRIoptions_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDRIedit.Click + ConMenTarget = Me.LvDRI + ConMenTarJob = False + Me.ConMenFilelist.Show(Control.MousePosition) + End Sub + + Private Sub LvDRI_ItemChecked(sender As Object, e As System.Windows.Forms.ItemCheckedEventArgs) Handles LvDRI.ItemChecked + + If e.Item.Checked Then + DRIchecked += 1 + Else + DRIchecked -= 1 + End If + + If CheckLock Then Exit Sub + UpdateCycleTabText() + + End Sub + + Private Sub ChBoxAllDRI_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChBoxAllDRI.CheckedChanged + Dim Check As Boolean + Dim x As ListViewItem + + If DRIcheckAllLock Or Me.ChBoxAllDRI.CheckState = CheckState.Indeterminate Then Exit Sub + + Check = Me.ChBoxAllDRI.Checked + + CheckLock = True + Me.LvDRI.BeginUpdate() + + For Each x In Me.LvDRI.Items + x.Checked = Check + Next + + Me.LvDRI.EndUpdate() + CheckLock = False + + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + + End Sub + + Private Sub ListViewDRI_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles LvDRI.DoubleClick + If Me.LvDRI.SelectedItems.Count > 0 Then + Me.LvDRI.SelectedItems(0).Checked = Not Me.LvDRI.SelectedItems(0).Checked + OpenCycle() + Else + AddCycle() + End If + End Sub + + Private Sub ListViewDRI_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles LvDRI.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + If Not GUIlocked Then RemoveCycle() + Case Keys.Enter + OpenCycle() + End Select + End Sub + + 'Drag n' Drop + Private Sub ListDRI_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles LvDRI.DragEnter + If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then e.Effect = DragDropEffects.Copy + End Sub + Private Sub ListDRI_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles LvDRI.DragDrop + Dim f As String() + f = CType(e.Data.GetData(DataFormats.FileDrop), Array) + AddToCycleListView(f) + If LvDRI.Items.Count > 0 Then LvDRI.Items(LvDRI.Items.Count - 1).Selected = True + End Sub + + Private Sub BtDRIup_Click(sender As System.Object, e As System.EventArgs) Handles BtDRIup.Click + MoveItem(LvDRI, True) + End Sub + + Private Sub BtDRIdown_Click(sender As System.Object, e As System.EventArgs) Handles BtDRIdown.Click + MoveItem(LvDRI, False) + End Sub + +#End Region + + 'Remove selected file(s) from cycle list + Private Sub RemoveCycle() + Dim lastindx As Integer + Dim SelIx() As Integer + Dim i As Integer + + If Me.LvDRI.SelectedItems.Count < 1 Then + If Me.LvDRI.Items.Count = 1 Then + Me.LvDRI.Items(0).Selected = True + Else + Exit Sub + End If + End If + + CheckLock = True + LvDRI.BeginUpdate() + + ReDim SelIx(LvDRI.SelectedItems.Count - 1) + LvDRI.SelectedIndices.CopyTo(SelIx, 0) + + lastindx = LvDRI.SelectedIndices(LvDRI.SelectedItems.Count - 1) + + For i = UBound(SelIx) To 0 Step -1 + LvDRI.Items.RemoveAt(SelIx(i)) + Next + + If lastindx < LvDRI.Items.Count Then + LvDRI.Items(lastindx).Selected = True + Else + If LvDRI.Items.Count > 0 Then LvDRI.Items(LvDRI.Items.Count - 1).Selected = True + End If + + CheckLock = False + LvDRI.EndUpdate() + + DRIchecked = LvDRI.CheckedItems.Count + UpdateCycleTabText() + End Sub + + 'Browse for cycle file(s) and add to cycle list with AddToCycleListView + Private Sub AddCycle() + If fbDRI.OpenDialog("", True) Then + AddToCycleListView(fbDRI.Files) + If LvDRI.Items.Count > 0 Then LvDRI.Items(LvDRI.Items.Count - 1).Selected = True + End If + End Sub + + 'Open cycle in list + Private Sub OpenCycle() + + If Me.LvDRI.SelectedItems.Count < 1 Then + If Me.LvDRI.Items.Count = 1 Then + Me.LvDRI.Items(0).Selected = True + Else + Exit Sub + End If + End If + + OpenFiles(fFileRepl(Me.LvDRI.SelectedItems(0).SubItems(0).Text)) + End Sub + + 'Add File to cycle listview (multiple files) + Private Sub AddToCycleListView(ByVal Path As String()) + Dim pDim As Int16 + Dim p As Int16 + Dim ListViewItem0 As ListViewItem + + pDim = UBound(Path) + + Me.LvDRI.BeginUpdate() + CheckLock = True + + 'Mode switch if necessary + If Not Me.CbBatch.Checked Then Me.CbBatch.Checked = True + + For p = 0 To pDim + ListViewItem0 = New ListViewItem(Path(p)) 'fFileWD(Path(p))) + ListViewItem0.SubItems.Add(" ") + ListViewItem0.Checked = True + Me.LvDRI.Items.Add(ListViewItem0) +lbFound: + Next + + Me.LvDRI.EndUpdate() + CheckLock = False + + 'Number update + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + + End Sub + + 'Add File to cycle listview (single file) + Private Sub AddToCycleListView(ByVal Path As String) + Dim p(0) As String + p(0) = Path + AddToCycleListView(p) + End Sub + + 'Update cycle files counter in tab titel + Private Sub UpdateCycleTabText() + Dim c As Integer + c = Me.LvDRI.Items.Count + + Me.TabPageDRI.Text = "Driving Cycles ( " & DRIchecked & " / " & c & " )" + 'Me.TabPageDRI.Text = "Driving Cycles (" & c & ")" + + DRIcheckAllLock = True + + If DRIchecked = 0 Then + Me.ChBoxAllDRI.CheckState = CheckState.Unchecked + ElseIf DRIchecked = c Then + Me.ChBoxAllDRI.CheckState = CheckState.Checked + Else + Me.ChBoxAllDRI.CheckState = CheckState.Indeterminate + End If + + DRIcheckAllLock = False + + End Sub + +#End Region + +#Region "Toolstrip" + + 'New Job file + Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click + OpenVECTOeditor("<New>") + End Sub + + 'Open input file + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + + If fbVECTO.OpenDialog("", False, "vecto,vveh,vgbx,veng,vsig") Then + OpenVectoFile(fbVECTO.Files(0)) + End If + + End Sub + + Private Sub GENEditorToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles GENEditorToolStripMenuItem1.Click + OpenVECTOeditor("<New>") + End Sub + + Private Sub VEHEditorToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles VEHEditorToolStripMenuItem.Click + If Not F_VEH.Visible Then + F_VEH.Show() + Else + If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal + F_VEH.BringToFront() + End If + End Sub + + Private Sub EngineEditorToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles EngineEditorToolStripMenuItem.Click + If Not F_ENG.Visible Then + F_ENG.Show() + Else + If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal + F_ENG.BringToFront() + End If + End Sub + + Private Sub GearboxEditorToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GearboxEditorToolStripMenuItem.Click + If Not F_GBX.Visible Then + F_GBX.Show() + Else + If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal + F_GBX.BringToFront() + End If + End Sub + + Private Sub GraphToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles GraphToolStripMenuItem.Click + Dim FGraph As New F_Graph + FGraph.Show() + End Sub + + Private Sub SignOrVerifyFilesToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SignOrVerifyFilesToolStripMenuItem.Click + If Not F_FileSign.Visible Then + F_FileSign.Show() + Else + If F_FileSign.WindowState = FormWindowState.Minimized Then F_FileSign.WindowState = FormWindowState.Normal + F_FileSign.BringToFront() + End If + End Sub + + Private Sub OpenLogToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenLogToolStripMenuItem.Click + System.Diagnostics.Process.Start(MyAppPath & "log.txt") + End Sub + + Private Sub SettingsToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SettingsToolStripMenuItem.Click + F_Settings.ShowDialog() + End Sub + + 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") + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub + + Private Sub UpdateNotesToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles UpdateNotesToolStripMenuItem.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 + + Private Sub CreateActivationFileToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles CreateActivationFileToolStripMenuItem.Click + If MsgBox("Create Activation File ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If Lic.CreateActFile(MyAppPath & "ActivationCode.dat") Then + GUImsg(tMsgID.Normal, "Activation File created.") + Else + GUImsg(tMsgID.Err, "Failed to create Activation File!") + MsgBox("ERROR! Failed to create Activation File!", MsgBoxStyle.Critical) + End If + End If + End Sub + + Private Sub AboutVECTOToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles AboutVECTOToolStripMenuItem1.Click + F_AboutBox.ShowDialog() + End Sub + + + + +#End Region + + 'Move job/cycle file up or down in list view + Private Sub MoveItem(ByRef ListV As ListView, ByVal MoveUp As Boolean) + Dim x As Int32 + Dim y As Int32 + Dim y1 As Int32 + Dim items() As String + Dim check() As Boolean + Dim index() As Integer + Dim ListViewItem0 As ListViewItem + + If GUIlocked Then Exit Sub + + 'Cache Selected Items + y1 = ListV.SelectedItems.Count - 1 + ReDim items(y1) + ReDim check(y1) + ReDim index(y1) + y = 0 + For Each x In ListV.SelectedIndices + items(y) = ListV.Items(x).SubItems(0).Text + check(y) = ListV.Items(x).Checked + If MoveUp Then + If x = 0 Then Exit Sub + index(y) = x - 1 + Else + If x = ListV.Items.Count - 1 Then Exit Sub + index(y) = x + 1 + End If + y += 1 + Next + + ListV.BeginUpdate() + + 'Delete Selected Items + For Each ListViewItem0 In ListV.SelectedItems + ListViewItem0.Remove() + Next + + 'Items select and Insert + 'For y = y1 To 0 Step -1 + For y = 0 To y1 + If Not check(y) Then GENchecked += 1 + ListViewItem0 = ListV.Items.Insert(index(y), items(y)) + ListViewItem0.SubItems.Add(" ") + ListViewItem0.Checked = check(y) + ListV.SelectedIndices.Add(index(y)) + Next + + ListV.EndUpdate() + + End Sub + + +#Region "job/cycle file List - Context Menu" + + 'Save List + Private Sub SaveListToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveListToolStripMenuItem.Click + If fbFileLists.SaveDialog("") Then + If ConMenTarJob Then + JobListView.SaveList(fbFileLists.Files(0)) + Else + CycleListView.SaveList(fbFileLists.Files(0)) + End If + End If + End Sub + + 'Load List + Private Sub LoadListToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadListToolStripMenuItem.Click + + If GUIlocked Then Exit Sub + + If fbFileLists.OpenDialog("") Then + + If ConMenTarJob Then 'GEN + JobListView.LoadList(fbFileLists.Files(0)) + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + Else 'DRI + 'Mode toggle + If Not Me.CbBatch.Checked Then Me.CbBatch.Checked = True + CycleListView.LoadList(fbFileLists.Files(0)) + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + End If + + End If + + End Sub + + 'Load Default List + Private Sub LoadDefaultListToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadDefaultListToolStripMenuItem.Click + + If GUIlocked Then Exit Sub + + If ConMenTarJob Then + + JobListView.LoadList() + + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + Else + CycleListView.LoadList() + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + End If + End Sub + + 'Clear List + Private Sub ClearListToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearListToolStripMenuItem.Click + 'Dim ListViewItem0 As ListViewItem + 'For Each ListViewItem0 In ConMenTarget.SelectedItems + ' ListViewItem0.Remove() + 'Next + If GUIlocked Then Exit Sub + + ConMenTarget.Items.Clear() + If ConMenTarJob Then + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + Else + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + End If + End Sub + +#End Region + + 'VECTO Start button - Calls VECTO_Launcher or aborts calculation + Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click + + 'VECTO Start/Stop + If VECTOworker.IsBusy Then + + 'If VECTO already running: STOP + ComLineShutDown = False + JobAbort() + + Else + + '...Otherwise: START + + 'Save Lists if Crash + SaveFileLists() + + 'Start + VECTO_Launcher() + + End If + + End Sub + + 'Mode Change (STANDARD/BATCH) + Private Sub CbBatch_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CbBatch.CheckedChanged + ModeUpdate() + End Sub + + Private Sub ModeUpdate() + + 'Save lists + JobListView.SaveList() + If Cfg.BatchMode Then CycleListView.SaveList() + + 'New mode + Cfg.BatchMode = Me.CbBatch.Checked + + 'GUI changes according to current mode + + If Cfg.BatchMode Then + + LastModeName = "Batch" + + 'Load cycle list + CycleListView.LoadList() + + 'Update cycle counter + DRIchecked = Me.LvDRI.CheckedItems.Count + UpdateCycleTabText() + + 'Show mode-specific settings + Me.GrBoxSTD.Visible = False + Me.GrBoxBATCH.Visible = True + + 'Show Cycle Tab Page + If Not CycleTabPageVisible Then + Me.TabControl1.TabPages.Insert(1, CycleTabPage) + CycleTabPageVisible = True + End If + + Else + + If Cfg.DeclMode Then + LastModeName = "Declaration" + Else + LastModeName = "Engineering" + End If + + 'Show mode-specific settings + Me.GrBoxSTD.Visible = False 'Currently no specific settings for STANDARD mode, therefore always 'False' + Me.GrBoxBATCH.Visible = False + + 'Hide Cycle Tab Page + If CycleTabPageVisible Then + Me.TabControl1.Controls.Remove(CycleTabPage) + CycleTabPageVisible = False + End If + + End If + + 'Update job counter + GENchecked = Me.LvGEN.CheckedItems.Count + UpdateJobTabText() + + 'Status label + Status(LastModeName & " Mode") + + End Sub + + 'Class for ListView control - Job and cycle lists + Private Class cFileListView + + Private FilePath As String + Private LoadedDefault As Boolean + Public LVbox As ListView + + Public Sub New(ByVal Path As String) + FilePath = Path + LoadedDefault = False + End Sub + + Public Sub SaveList(Optional ByVal Path As String = "") + Dim x As Int32 + Dim file As cFile_V3 + 'If LVbox.Items.Count = 0 Then Exit Sub + file = New cFile_V3 + If Path = "" Then + If Not LoadedDefault Then Exit Sub + Path = FilePath + End If + file.OpenWrite(Path, "?") + For x = 1 To LVbox.Items.Count + file.WriteLine(LVbox.Items(x - 1).SubItems(0).Text, Math.Abs(CInt(LVbox.Items(x - 1).Checked))) + Next + file.Close() + file = Nothing + End Sub + + Public Sub LoadList(Optional ByVal Path As String = "") + Dim line As String() + Dim NoCheck As Boolean + Dim file As cFile_V3 + Dim ListViewItem0 As ListViewItem + + If Path = "" Then + Path = FilePath + LoadedDefault = True + End If + + file = New cFile_V3 + + If Not file.OpenRead(Path, "?") Then + If Not LoadedDefault Then GUImsg(tMsgID.Err, "Cannot open file (" & Path & ")!") + Exit Sub + End If + + F_MAINForm.CheckLock = True + LVbox.BeginUpdate() + + LVbox.Items.Clear() + + NoCheck = False + Do While Not file.EndOfFile + line = file.ReadLine + + ListViewItem0 = New ListViewItem(line(0)) + ListViewItem0.SubItems.Add(" ") + + If NoCheck Then + ListViewItem0.Checked = True + Else + If UBound(line) < 1 Then + NoCheck = True + ListViewItem0.Checked = True + Else + If IsNumeric(line(1)) Then + ListViewItem0.Checked = CBool(line(1)) + Else + ListViewItem0.Checked = True + End If + End If + End If + LVbox.Items.Add(ListViewItem0) + Loop + + file.Close() + + LVbox.EndUpdate() + F_MAINForm.CheckLock = False + + If LVbox.Items.Count > 0 Then LVbox.Items(LVbox.Items.Count - 1).EnsureVisible() + + End Sub + + End Class + + 'Set color of job files in list (Error, Warnings, Currently running, etc.) + Private Sub SetCheckedItemColor(ByVal LvID As Integer, ByVal Status As tJobStatus) + Dim lv0 As ListViewItem + + lv0 = CheckedItems(LvID) + + Select Case Status + Case tJobStatus.Err + lv0.BackColor = Color.Red + lv0.ForeColor = Color.White + Case tJobStatus.OK + lv0.BackColor = Color.White + lv0.ForeColor = Color.DarkGreen + Case tJobStatus.Warn + lv0.BackColor = Color.Khaki + lv0.ForeColor = Color.DarkBlue 'FromArgb(218, 125, 0) 'DarkOrange 'OrangeRed + Case tJobStatus.Queued + lv0.BackColor = Color.LightGray + lv0.ForeColor = Color.DarkBlue + Case tJobStatus.Running + lv0.BackColor = Color.DarkBlue + lv0.ForeColor = Color.White + Case tJobStatus.Undef + lv0.BackColor = Color.FromKnownColor(KnownColor.Window) + lv0.ForeColor = Color.FromKnownColor(KnownColor.WindowText) + End Select + + End Sub + + 'Open Job Editor and open file (or new file) + Friend Sub OpenVECTOeditor(ByVal x As String) + + If Not F_VECTO.Visible Then + F_VECTO.Show() + Else + If F_VECTO.WindowState = FormWindowState.Minimized Then F_VECTO.WindowState = FormWindowState.Normal + F_VECTO.BringToFront() + End If + + If x = "<New>" Then + F_VECTO.VECTOnew() + Else + F_VECTO.VECTOload2Form(x) + End If + + F_VECTO.Activate() + + End Sub + + 'Open signature file (.vsig) + Friend Sub OpenSigFile(ByVal file As String) + If Not F_FileSign.Visible Then + F_FileSign.Show() + + End If + F_FileSign.WindowState = FormWindowState.Normal + F_FileSign.TbSigFile.Text = file + F_FileSign.VerifySigFile() + F_FileSign.Activate() + End Sub + + 'Save job and cycle file lists + Private Sub SaveFileLists() + JobListView.SaveList() + If Cfg.BatchMode Then CycleListView.SaveList() + End Sub + + +#Region "Progressbar controls" + + 'Initialise progress bar (Start of next job in calculation) + Private Sub ProgSecStart() + Me.ToolStripProgBarJob.Value = 0 + Me.ToolStripProgBarJob.Style = ProgressBarStyle.Marquee + Me.ToolStripProgBarJob.Visible = True + Me.TmProgSec.Start() + End Sub + + 'Stop - Hide progress bar + Private Sub ProgSecStop() + Me.TmProgSec.Stop() + Me.ToolStripProgBarJob.Visible = False + Me.ToolStripProgBarJob.Value = 0 + End Sub + + 'Timer to update progress bar regularly + Private Sub TmProgSec_Tick(sender As Object, e As System.EventArgs) Handles TmProgSec.Tick + If GUItest0.TestActive Then + Call GUItest0.TestTick() + Exit Sub + Else + If Not ProgBarCtrl.ProgLock Then ProgSecUpdate() + End If + End Sub + + 'Update progress bar (timer controlled) + Private Sub ProgSecUpdate() + + With ProgBarCtrl + + If .ProgJobInt > 0 AndAlso Me.ToolStripProgBarJob.Style = ProgressBarStyle.Marquee Then + Me.ToolStripProgBarJob.Style = ProgressBarStyle.Continuous + End If + + If .ProgJobInt < 0 Then + .ProgJobInt = 0 + ElseIf .ProgJobInt > 100 Then + .ProgJobInt = 100 + End If + + Me.ToolStripProgBarJob.Value = .ProgJobInt + + If .ProgOverallStartInt > -1 Then + Me.ToolStripProgBarOverall.Value = CInt(.ProgOverallStartInt + (.PgroOverallEndInt - .ProgOverallStartInt) * .ProgJobInt / 100) + End If + + End With + + End Sub + + +#End Region + +#Region "Options Tab" + + 'Load options from config class + Public Sub LoadOptions() + Me.ChBoxCyclDistCor.Checked = Cfg.DistCorr + Me.ChBoxUseGears.Checked = Cfg.GnUfromCycle + Me.ChBoxModOut.Checked = Cfg.ModOut + CbBOmode.SelectedIndex = -1 + Select Case UCase(Cfg.BATCHoutpath) + Case sKey.JobPath + CbBOmode.SelectedIndex = 0 + Case Else + CbBOmode.SelectedIndex = 1 + Me.TbBOpath.Text = Cfg.BATCHoutpath + End Select + Me.ChBoxBatchSubD.Checked = Cfg.BATCHoutSubD + + 'Set Mode + If Not Cfg.DeclMode Then Me.CbBatch.Checked = Cfg.BatchMode + + Me.RbDecl.Checked = Cfg.DeclMode + + End Sub + + 'Update config class from options in GUI, e.g. before running calculations + Private Sub SetOptions() + + 'General(Allgemein) + Cfg.DistCorr = Me.ChBoxCyclDistCor.Checked + Cfg.GnUfromCycle = Me.ChBoxUseGears.Checked + + 'BATCH + Cfg.ModOut = Me.ChBoxModOut.Checked + Select Case CbBOmode.SelectedIndex + Case 0 + Cfg.BATCHoutpath = sKey.JobPath + Case Else + Cfg.BATCHoutpath = Trim(Me.TbBOpath.Text) + If Microsoft.VisualBasic.Right(Cfg.BATCHoutpath, 1) <> "\" Then Cfg.BATCHoutpath &= "\" + End Select + Cfg.BATCHoutSubD = Me.ChBoxBatchSubD.Checked + + DEV.SetOptions() + + + End Sub + +#Region "Events" + + Private Sub ChBoxAutoSD_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChBoxAutoSD.CheckedChanged + Me.LbAutoShDown.Visible = Me.ChBoxAutoSD.Checked + End Sub + + Private Sub CbBOmode_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbBOmode.SelectedIndexChanged + Me.TbBOpath.Visible = (Me.CbBOmode.SelectedIndex = 2) + Me.ButBObrowse.Visible = (Me.CbBOmode.SelectedIndex = 2) + End Sub + + Private Sub ButBObrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButBObrowse.Click + If fbFolder.OpenDialog(Me.TbBOpath.Text) Then + Me.TbBOpath.Text = fbFolder.Files(0) + End If + End Sub + + Private Sub ChBoxBatchOut_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChBoxModOut.CheckedChanged + Me.ChBoxBatchSubD.Enabled = Me.ChBoxModOut.Checked + End Sub + +#End Region + + +#End Region + +#Region "Developer options (DEV) Tab" + + 'Load DEV options + Private Sub LoadDEVconfigs() + Dim LV0 As ListViewItem + Dim i As Integer + Dim Config0 As KeyValuePair(Of String, cDEVoption) + + Me.LvDEVoptions.Items.Clear() + + i = -1 + For Each Config0 In DEV.Options + i += 1 + + LV0 = New ListViewItem + LV0.SubItems(0).Text = Config0.Key + LV0.SubItems.Add(Config0.Value.Description) + LV0.SubItems.Add(Config0.Value.TypeString) + LV0.SubItems.Add("") + LV0.SubItems.Add(Config0.Value.ValTextDef) + + If Config0.Value.ConfigType = tDEVconfType.tAction Then + LV0.SubItems.Add("") + Else + If Config0.Value.SaveInFile Then + LV0.SubItems.Add("True") + Else + LV0.SubItems.Add("False") + End If + End If + + + + LV0.Tag = Config0.Key + + If Not Config0.Value.Enabled Then + LV0.ForeColor = Color.DarkGray + End If + + Me.LvDEVoptions.Items.Add(LV0) + + UpdateDEVconfigs(LV0) + + Next + + End Sub + + 'Update value of specific DEV option + Private Sub UpdateDEVconfigs(ByRef LV0 As ListViewItem) + LV0.SubItems(3).Text = DEV.Options(LV0.Tag).ValText + End Sub + + 'Change value of DEV option or execute action-type DEV options + Private Sub LvDEVoptions_DoubleClick(sender As Object, e As System.EventArgs) Handles LvDEVoptions.DoubleClick + Dim Config0 As cDEVoption + Dim str As String + Dim i As Integer + + Config0 = DEV.Options(Me.LvDEVoptions.SelectedItems(0).Tag) + + If Not Config0.Enabled Then Exit Sub + + Select Case Config0.ConfigType + Case tDEVconfType.tAction + Config0.DoAction() + + Case tDEVconfType.tBoolean + Config0.BoolVal = Not Config0.BoolVal + + Case tDEVconfType.tSelection + + CmDEVitem = Me.LvDEVoptions.SelectedItems(0) + + CmDEV.Items.Clear() + + i = -1 + For Each str In Config0.Modes + i += 1 + CmDEV.Items.Add("(" & i & ") " & str) + CmDEV.Items(i).Tag = i + Next + + CmDEV.Show(Cursor.Position) + + Case tDEVconfType.tIntVal + str = InputBox("New Value <" & Config0.TypeString & "> =", , Config0.ValToString) + If str <> "" AndAlso IsNumeric(str) Then + Config0.IntVal = CInt(str) + End If + + Case tDEVconfType.tSingleVal + str = InputBox("New Value <" & Config0.TypeString & "> =", , Config0.ValToString) + If str <> "" AndAlso IsNumeric(str) Then + Config0.SingleVal = CSng(str) + End If + + Case Else 'tDEVconfType.tStringVal + Dim dlg As New F_StrInpBox + Config0.StringVal = dlg.ShowDlog("New Value <" & Config0.TypeString & "> =", Config0.StringVal) + End Select + + UpdateDEVconfigs(Me.LvDEVoptions.SelectedItems(0)) + + End Sub + + 'Context menu for selection-type DEV options + Private Sub CmDEV_ItemClicked(sender As Object, e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles CmDEV.ItemClicked + Dim i As Integer + + i = e.ClickedItem.Tag + + DEV.Options(CmDEVitem.Tag).ModeIndex = i + + UpdateDEVconfigs(CmDEVitem) + + End Sub + + + + +#End Region + + 'Add message to message list + Public Sub MSGtoForm(ByVal ID As tMsgID, ByVal Msg As String, ByVal Source As String, ByVal Link As String) + + Dim lv0 As ListViewItem + + lv0 = New ListViewItem + lv0.Text = Msg + lv0.SubItems.Add(Now.ToString) + lv0.SubItems.Add(Source) + + If LvMsg.Items.Count > 9999 Then LvMsg.Items.RemoveAt(0) + + LogFile.WriteToLog(ID, Msg & vbTab & Source) + + Select Case ID + + Case tMsgID.Err + + lv0.BackColor = Color.Red + lv0.ForeColor = Color.White + + Case tMsgID.Warn + + lv0.BackColor = Color.Khaki 'FromArgb(218, 125, 0) 'DarkOrange + lv0.ForeColor = Color.Black + + Case Else + + If ID = tMsgID.NewJob Then + lv0.BackColor = Color.LightGray + lv0.ForeColor = Color.DarkBlue + End If + + End Select + + If Link <> "" Then + If Not ID = tMsgID.Err Then lv0.ForeColor = Color.Blue + lv0.SubItems(0).Font = New Font(Me.LvMsg.Font, FontStyle.Underline) + lv0.Tag = Link + End If + + + LvMsg.Items.Add(lv0) + + lv0.EnsureVisible() + + End Sub + + + + + 'Open link in message list + Private Sub LvMsg_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles LvMsg.MouseClick + Dim txt As String + If Me.LvMsg.SelectedIndices.Count > 0 Then + If Not Me.LvMsg.SelectedItems(0).Tag Is Nothing Then + If Len(CStr(Me.LvMsg.SelectedItems(0).Tag)) > 4 AndAlso Microsoft.VisualBasic.Left(CStr(Me.LvMsg.SelectedItems(0).Tag), 4) = "<UM>" Then + txt = CStr(Me.LvMsg.SelectedItems(0).Tag).Replace("<UM>", MyAppPath & "User Manual") + txt = txt.Replace(" ", "%20") + txt = txt.Replace("\", "/") + txt = "file:///" & txt + Try + System.Diagnostics.Process.Start(txt) + Catch ex As Exception + MsgBox("Cannot open link! (-_-;)") + End Try + ElseIf Len(CStr(Me.LvMsg.SelectedItems(0).Tag)) > 5 AndAlso Microsoft.VisualBasic.Left(CStr(Me.LvMsg.SelectedItems(0).Tag), 5) = "<GUI>" Then + txt = CStr(Me.LvMsg.SelectedItems(0).Tag).Replace("<GUI>", "") + OpenVectoFile(txt) + ElseIf Len(CStr(Me.LvMsg.SelectedItems(0).Tag)) > 5 AndAlso Microsoft.VisualBasic.Left(CStr(Me.LvMsg.SelectedItems(0).Tag), 5) = "<RUN>" Then + txt = CStr(Me.LvMsg.SelectedItems(0).Tag).Replace("<RUN>", "") + Try + Process.Start(txt) + Catch ex As Exception + GUImsg(tMsgID.Err, "Could not run '" & txt & "'!") + End Try + Else + OpenFiles(CStr(Me.LvMsg.SelectedItems(0).Tag)) + End If + End If + End If + End Sub + + 'Link-cursor (Hand) for links + Private Sub LvMsg_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles LvMsg.MouseMove + Dim lv0 As ListViewItem + lv0 = Me.LvMsg.GetItemAt(e.Location.X, e.Location.Y) + If lv0 Is Nothing OrElse lv0.Tag Is Nothing Then + LvMsg.Cursor = Cursors.Arrow + Else + LvMsg.Cursor = Cursors.Hand + End If + End Sub + +#Region "Open File Context Menu" + + Private CmFiles As String() + + 'Initialise and open context menu + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + Me.OpenInGraphWindowToolStripMenuItem.Enabled = (UCase(fEXT(CmFiles(0))) = ".VMOD") + + + OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName + + CmOpenFile.Show(Cursor.Position) + + End Sub + + 'Open with tool defined in Settings + 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 OpenInGraphWindowToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenInGraphWindowToolStripMenuItem.Click + Dim FGraph As New F_Graph + FGraph.Show() + FGraph.LoadNewFile(CmFiles(0)) + End Sub + + 'Show in folder + 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 + + 'Change Declaraion Mode + Private Sub RbDecl_CheckedChanged(sender As Object, e As System.EventArgs) Handles RbDecl.CheckedChanged + If CbDeclLock Then Exit Sub + + If F_VECTO.Visible Or F_VEH.Visible Or F_GBX.Visible Or F_ENG.Visible Then + CbDeclLock = True + Me.RbDecl.Checked = Not Me.RbDecl.Checked + CbDeclLock = False + MsgBox("Please close all dialog windows (e.g. Job Editor) before changing mode!") + Else + Cfg.DeclMode = Me.RbDecl.Checked + Me.RbDev.Checked = Not Me.RbDecl.Checked + DeclOnOff() + End If + + End Sub + + + + + +#Region "GUI Tests" + + Private GUItest0 As New GUItest(Me) + + Private Class GUItest + Private RowLim As Int16 = 9 + Private ColLim As Int16 = 45 + Public TestActive As Boolean = False + Private TestAborted As Boolean + Private xCtrl As Int16 + Private xPanel As Int16 + Private Scr As Int32 + Private PRbAlt As Boolean + Private Ctrls(RowLim + 1) As Int16 + Private Pnls(RowLim + 1) As Int16 + Private CtrlC As Int16 + Private CtrlCL As Int16 + Private PnDir As Int16 + Private PnDirC As Int16 + Private PnDirCL As Int16 + Private PnDirRnd As Int16 + Private CtrlRnd As Int16 + Private DiffC As Int16 + Private DiffLvl As Int16 + Private bInit As Int16 + Private MyForm As F_MAINForm + Private KeyCode As List(Of Integer) + + Private Sub TestRun() + + Dim z As Int16 + + xPanel = ColLim - 10 + xCtrl = ColLim - 10 + PRbAlt = False + Scr = 0 + PnDir = 0 + PnDirCL = 10 + PnDirC = 0 ' StrDirCL + CtrlCL = 5 + CtrlC = CtrlCL + PnDirRnd = 5 + CtrlRnd = 8 + DiffC = 0 + DiffLvl = 1 + bInit = 0 + TestAborted = False + Randomize() + + + MyForm.LvMsg.Items.Clear() + MyForm.ToolStripLbStatus.Text = "Score: 0000 Press <Esc> to Quit" + + For z = 1 To RowLim - 6 + PRbAlt = Not PRbAlt + If Not PRbAlt Then + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| |*") + Else + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| | |*") + End If + Next + + PRbAlt = False + + MyForm.LvMsg.Items.Add(" VECTO Interactive Mode" & Space(ColLim - 35) & "*| |*") + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| | |*") + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| |*") + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| | |*") + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| |*") + MyForm.LvMsg.Items.Add(Space(ColLim - 11) & "*| ∆ |*") + + For z = 1 To RowLim + 1 + Pnls(z) = ColLim - 10 + Ctrls(z) = 0 + Next + + MyForm.TmProgSec.Interval = 200 + + MyForm.LvMsg.Focus() + + MyForm.TmProgSec.Start() + + + End Sub + + Public Sub TestStop() + MyForm.TmProgSec.Stop() + TestActive = False + MyForm.LvMsg.Items.Clear() + CtrlC = 0 + MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode" + End Sub + + Public Sub TestTick() + + If bInit = 24 Then GoTo LbRace + bInit += 1 + + Select Case bInit + Case 10 + MyForm.LvMsg.Items.RemoveAt(RowLim - 6) + MyForm.LvMsg.Items.RemoveAt(RowLim - 5) + MyForm.LvMsg.Items.Insert(RowLim - 6, Space(ColLim - 11) & "*| |*") + MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " 3 " & Space(10) & "*| |*") + Case 14 + MyForm.LvMsg.Items.RemoveAt(RowLim - 4) + MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " 2 " & Space(10) & "*| |*") + Case 18 + MyForm.LvMsg.Items.RemoveAt(RowLim - 4) + MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " 1 " & Space(10) & "*| |*") + Case 22 + MyForm.LvMsg.Items.RemoveAt(RowLim - 4) + MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " Go! " & Space(10) & "*| |*") + Case 24 + MyForm.LvMsg.Items.RemoveAt(RowLim - 4) + MyForm.LvMsg.Items.Insert(RowLim - 4, Space(ColLim - 30) & " " & Space(10) & "*| |*") + End Select + Exit Sub +LbRace: + + PRbAlt = Not PRbAlt + + MyForm.LvMsg.BeginUpdate() + + sLists() + + sAlign() + + sSetCtrl() + + sSetPanel() + + MyForm.LvMsg.Items.RemoveAt(RowLim) + + sUpdateCtrl() + + MyForm.LvMsg.EndUpdate() + + If Math.Abs(xCtrl - Pnls(2)) > 4 Then + sAbort() + Exit Sub + ElseIf Ctrls(2) <> 0 Then + If xCtrl = Pnls(2) + Ctrls(2) - 4 Then + sAbort() + Exit Sub + End If + Scr += 5 * DiffLvl + End If + + Scr += DiffLvl + DiffC += 1 + + 'Erhöhe Schwierigkeitsgrad + If DiffC = (DiffLvl + 3) * 4 Then + DiffC = 0 + DiffLvl += 1 + If DiffLvl > 2 And DiffLvl < 7 Then MyForm.TmProgSec.Interval = 300 - (DiffLvl) * 30 + Scr += 100 + Select Case DiffLvl + Case 3 + PnDirCL = 3 + CtrlCL = 4 + CtrlRnd = 6 + Case 5 + PnDirCL = 2 + PnDirRnd = 4 + Case 8 + CtrlCL = 2 + Case 10 + CtrlRnd = 4 + PnDirRnd = 3 + End Select + End If + + End Sub + + Public Sub TestKey(ByVal Key0 As Integer) + + If TestActive Then + Select Case Key0 + Case Keys.Left + xCtrl -= 1 + sUpdateCtrl() + Case Keys.Right + xCtrl += 1 + sUpdateCtrl() + Case Keys.Escape + TestStop() + End Select + Else + + If KeyCode(CtrlC) = Key0 Then + CtrlC += 1 + If CtrlC = KeyCode.Count Then + TestActive = True + TestRun() + End If + Else + CtrlC = 0 + End If + + End If + End Sub + + Private Sub sAbort() + + Dim s As String, s1 As String + + If TestAborted Then Exit Sub + + TestAborted = True + + MyForm.TmProgSec.Stop() + + MyForm.LvMsg.BeginUpdate() + + s = MyForm.LvMsg.Items(0).Text + MyForm.LvMsg.Items.RemoveAt(0) + MyForm.LvMsg.Items.Insert(0, "You crashed!" & Microsoft.VisualBasic.Right(s, Len(s) - 12)) + + s = MyForm.LvMsg.Items(1).Text + s1 = "Score: " & Scr & " " + MyForm.LvMsg.Items.RemoveAt(1) + MyForm.LvMsg.Items.Insert(1, s1 & Microsoft.VisualBasic.Right(s, Len(s) - Len(s1))) + + MyForm.LvMsg.EndUpdate() + + LogFile.WriteToLog(tMsgID.Normal, "*** Race Score: " & Scr.ToString("0000") & " ***") + + CtrlC = 0 + TestActive = False + + MyForm.ToolStripLbStatus.Text = MyForm.LastModeName & " Mode" + + + End Sub + + Private Sub sSetCtrl() + Dim x As Int16 + If Scr < 10 Then Exit Sub + Ctrls(RowLim + 1) = 0 + CtrlC += 1 + If CtrlC < CtrlCL Then Exit Sub + Select Case CInt(Int((CtrlRnd * Rnd()) + 1)) + Case 1, 2 + CtrlC = 0 + x = CInt(Int((7 * Rnd()) + 1)) + Ctrls(RowLim + 1) = x + Case Else + End Select + End Sub + + Private Sub sUpdateCtrl() + Dim s As String + If bInit < 21 Then + xCtrl = ColLim - 10 + Exit Sub + End If + If Math.Abs(xCtrl - Pnls(1)) > 5 Then + sAbort() + Exit Sub + End If + s = Replace(MyForm.LvMsg.Items(RowLim - 1).Text.ToString, "∆", " ") & " " + s = Microsoft.VisualBasic.Left(s, ColLim + 15) + 's = s.Remove(0, 20) + 's = "Press <Esc> to Quit " & s + If Mid(s, xCtrl + 5, 1) = "X" Then + sAbort() + Exit Sub + End If + s = s.Remove(xCtrl + 4, 1) + 's = Trim(s.Insert(xCar + 4, "∆")) & Space(ColLim + 5 - Streets(2)) & "Pts: " & Pts & " Lv: " & DiffLvl + s = Space(Pnls(2) - 1) & Trim(s.Insert(xCtrl + 4, "∆")) + MyForm.LvMsg.Items.RemoveAt(RowLim - 1) + MyForm.LvMsg.Items.Insert(RowLim - 1, s) + MyForm.ToolStripLbStatus.Text = "Score: " & Scr.ToString("0000") & " Press <Esc> to Quit" + End Sub + + Private Sub sSetPanel() + Dim s As String + s = "*| | |*" + If PRbAlt Then + s = s.Remove(5, 1) + s = s.Insert(5, " ") + End If + If Ctrls(RowLim + 1) <> 0 Then + s = s.Remove(Ctrls(RowLim + 1) + 1, 1) + s = s.Insert(Ctrls(RowLim + 1) + 1, "X") + End If + Select Case xPanel - Pnls(RowLim) + Case -1 + s = Replace(s, "|", "\") + Case 1 + s = Replace(s, "|", "/") + End Select + MyForm.LvMsg.Items.Insert(0, Space(xPanel - 1) & s) + End Sub + + Private Sub sAlign() + PnDirC += 1 + If PnDirC < PnDirCL Then GoTo Lb1 + PnDirC = 0 + Select Case CInt(Int((PnDirRnd * Rnd()) + 1)) + Case 1 + PnDir = 1 + Case 2 + PnDir = -1 + Case Else + PnDir = 0 + End Select +Lb1: + xPanel += PnDir + If xPanel > ColLim Then + xPanel = ColLim + ElseIf xPanel < 22 Then + xPanel = 22 + End If + Pnls(RowLim + 1) = xPanel + End Sub + + Private Sub sLists() + Dim x As Int16 + For x = 2 To RowLim + 1 + Ctrls(x - 1) = Ctrls(x) + Pnls(x - 1) = Pnls(x) + Next + End Sub + + Public Sub New(ByVal Form As F_MAINForm) + MyForm = Form + KeyCode = New List(Of Integer) + KeyCode.Add(Keys.Up) + KeyCode.Add(Keys.Up) + KeyCode.Add(Keys.Down) + KeyCode.Add(Keys.Down) + KeyCode.Add(Keys.Left) + KeyCode.Add(Keys.Right) + KeyCode.Add(Keys.Left) + KeyCode.Add(Keys.Right) + KeyCode.Add(Keys.B) + KeyCode.Add(Keys.A) + CtrlC = 0 + End Sub + + End Class + + Private Sub LvMsg_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvMsg.KeyDown + GUItest0.TestKey(e.KeyValue) + If GUItest0.TestActive Then e.SuppressKeyPress = True + End Sub + + Private Sub LvMsg_LostFocus(sender As Object, e As System.EventArgs) Handles LvMsg.LostFocus + If GUItest0.TestActive Then GUItest0.TestStop() + End Sub + +#End Region + + + +End Class diff --git a/VECTO/GUI/F_Settings.Designer.vb b/VECTO/GUI/F_Settings.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..4a23726acca25d120f117ae1e38a2319b33278b8 --- /dev/null +++ b/VECTO/GUI/F_Settings.Designer.vb @@ -0,0 +1,339 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_Settings + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.ButtonOK = New System.Windows.Forms.Button() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.TbOpenCmdName = New System.Windows.Forms.TextBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.TbOpenCmd = New System.Windows.Forms.TextBox() + Me.Label12 = New System.Windows.Forms.Label() + Me.TextBoxLogSize = New System.Windows.Forms.TextBox() + Me.Label16 = New System.Windows.Forms.Label() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.GrCalc = New System.Windows.Forms.GroupBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.TbCO2toFC = New System.Windows.Forms.TextBox() + Me.Label10 = New System.Windows.Forms.Label() + Me.TbFuelDens = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.TbAirDensity = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.ButReset = New System.Windows.Forms.Button() + Me.BtHelp = New System.Windows.Forms.Button() + Me.GroupBox3.SuspendLayout() + Me.GroupBox5.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPage2.SuspendLayout() + Me.GrCalc.SuspendLayout() + Me.SuspendLayout() + ' + 'ButtonOK + ' + Me.ButtonOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOK.Location = New System.Drawing.Point(347, 287) + Me.ButtonOK.Name = "ButtonOK" + Me.ButtonOK.Size = New System.Drawing.Size(75, 26) + Me.ButtonOK.TabIndex = 2 + Me.ButtonOK.Text = "OK" + Me.ButtonOK.UseVisualStyleBackColor = True + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButtonCancel.Location = New System.Drawing.Point(428, 287) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 26) + Me.ButtonCancel.TabIndex = 3 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.GroupBox5) + Me.GroupBox3.Controls.Add(Me.TextBoxLogSize) + Me.GroupBox3.Controls.Add(Me.Label16) + Me.GroupBox3.Location = New System.Drawing.Point(5, 6) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(489, 124) + Me.GroupBox3.TabIndex = 0 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Interface" + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.TbOpenCmdName) + Me.GroupBox5.Controls.Add(Me.Label7) + Me.GroupBox5.Controls.Add(Me.TbOpenCmd) + Me.GroupBox5.Controls.Add(Me.Label12) + Me.GroupBox5.Location = New System.Drawing.Point(230, 19) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(253, 96) + Me.GroupBox5.TabIndex = 1 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "File Open Command" + ' + 'TbOpenCmdName + ' + Me.TbOpenCmdName.Location = New System.Drawing.Point(66, 19) + Me.TbOpenCmdName.Name = "TbOpenCmdName" + Me.TbOpenCmdName.Size = New System.Drawing.Size(174, 20) + Me.TbOpenCmdName.TabIndex = 0 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(6, 48) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(54, 13) + Me.Label7.TabIndex = 12 + Me.Label7.Text = "Command" + ' + 'TbOpenCmd + ' + Me.TbOpenCmd.Location = New System.Drawing.Point(66, 45) + Me.TbOpenCmd.Name = "TbOpenCmd" + Me.TbOpenCmd.Size = New System.Drawing.Size(174, 20) + Me.TbOpenCmd.TabIndex = 1 + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(25, 22) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(35, 13) + Me.Label12.TabIndex = 12 + Me.Label12.Text = "Name" + ' + 'TextBoxLogSize + ' + Me.TextBoxLogSize.Location = New System.Drawing.Point(134, 38) + Me.TextBoxLogSize.Name = "TextBoxLogSize" + Me.TextBoxLogSize.Size = New System.Drawing.Size(36, 20) + Me.TextBoxLogSize.TabIndex = 0 + ' + 'Label16 + ' + Me.Label16.AutoSize = True + Me.Label16.Location = New System.Drawing.Point(18, 41) + Me.Label16.Name = "Label16" + Me.Label16.Size = New System.Drawing.Size(110, 13) + Me.Label16.TabIndex = 10 + Me.Label16.Text = "Logfile Size Limit [MB]" + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Location = New System.Drawing.Point(3, 3) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(508, 278) + Me.TabControl1.TabIndex = 12 + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.GrCalc) + Me.TabPage2.Controls.Add(Me.GroupBox3) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(500, 252) + Me.TabPage2.TabIndex = 0 + Me.TabPage2.Text = "VECTO" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'GrCalc + ' + Me.GrCalc.Controls.Add(Me.Label11) + Me.GrCalc.Controls.Add(Me.Label9) + Me.GrCalc.Controls.Add(Me.Label3) + Me.GrCalc.Controls.Add(Me.TbCO2toFC) + Me.GrCalc.Controls.Add(Me.Label10) + Me.GrCalc.Controls.Add(Me.TbFuelDens) + Me.GrCalc.Controls.Add(Me.Label8) + Me.GrCalc.Controls.Add(Me.TbAirDensity) + Me.GrCalc.Controls.Add(Me.Label2) + Me.GrCalc.Location = New System.Drawing.Point(6, 136) + Me.GrCalc.Name = "GrCalc" + Me.GrCalc.Size = New System.Drawing.Size(488, 103) + Me.GrCalc.TabIndex = 1 + Me.GrCalc.TabStop = False + Me.GrCalc.Text = "Calculation" + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(164, 66) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(77, 13) + Me.Label11.TabIndex = 16 + Me.Label11.Text = "[kgCO2/KgFC]" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(309, 22) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(32, 13) + Me.Label9.TabIndex = 16 + Me.Label9.Text = "[kg/l]" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(130, 22) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(41, 13) + Me.Label3.TabIndex = 16 + Me.Label3.Text = "[kg/m²]" + ' + 'TbCO2toFC + ' + Me.TbCO2toFC.Location = New System.Drawing.Point(108, 63) + Me.TbCO2toFC.Name = "TbCO2toFC" + Me.TbCO2toFC.Size = New System.Drawing.Size(50, 20) + Me.TbCO2toFC.TabIndex = 2 + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(11, 66) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(91, 13) + Me.Label10.TabIndex = 14 + Me.Label10.Text = "CO2-to-Fuel Ratio" + ' + 'TbFuelDens + ' + Me.TbFuelDens.Location = New System.Drawing.Point(253, 19) + Me.TbFuelDens.Name = "TbFuelDens" + Me.TbFuelDens.Size = New System.Drawing.Size(50, 20) + Me.TbFuelDens.TabIndex = 1 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(184, 22) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(63, 13) + Me.Label8.TabIndex = 14 + Me.Label8.Text = "Fuel density" + ' + 'TbAirDensity + ' + Me.TbAirDensity.Location = New System.Drawing.Point(74, 19) + Me.TbAirDensity.Name = "TbAirDensity" + Me.TbAirDensity.Size = New System.Drawing.Size(50, 20) + Me.TbAirDensity.TabIndex = 0 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(11, 22) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(57, 13) + Me.Label2.TabIndex = 14 + Me.Label2.Text = "Air Density" + ' + 'ButReset + ' + Me.ButReset.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.ButReset.Location = New System.Drawing.Point(35, 287) + Me.ButReset.Name = "ButReset" + Me.ButReset.Size = New System.Drawing.Size(108, 26) + Me.ButReset.TabIndex = 1 + Me.ButReset.Text = "Reset All Settings" + Me.ButReset.UseVisualStyleBackColor = True + ' + 'BtHelp + ' + Me.BtHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtHelp.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.BtHelp.Location = New System.Drawing.Point(3, 287) + Me.BtHelp.Name = "BtHelp" + Me.BtHelp.Size = New System.Drawing.Size(26, 26) + Me.BtHelp.TabIndex = 0 + Me.BtHelp.UseVisualStyleBackColor = True + ' + 'F_Settings + ' + Me.AcceptButton = Me.ButtonOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButtonCancel + Me.ClientSize = New System.Drawing.Size(515, 325) + Me.Controls.Add(Me.BtHelp) + Me.Controls.Add(Me.ButReset) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ButtonOK) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_Settings" + Me.Text = "Settings" + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + Me.GroupBox5.ResumeLayout(False) + Me.GroupBox5.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPage2.ResumeLayout(False) + Me.GrCalc.ResumeLayout(False) + Me.GrCalc.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents ButtonOK As System.Windows.Forms.Button + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents TabPage2 As System.Windows.Forms.TabPage + Friend WithEvents TextBoxLogSize As System.Windows.Forms.TextBox + Friend WithEvents Label16 As System.Windows.Forms.Label + Friend WithEvents ButReset As System.Windows.Forms.Button + Friend WithEvents TbOpenCmd As System.Windows.Forms.TextBox + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents GrCalc As System.Windows.Forms.GroupBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents TbAirDensity As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents TbFuelDens As System.Windows.Forms.TextBox + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents TbCO2toFC As System.Windows.Forms.TextBox + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents BtHelp As System.Windows.Forms.Button + Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox + Friend WithEvents TbOpenCmdName As System.Windows.Forms.TextBox + Friend WithEvents Label12 As System.Windows.Forms.Label +End Class diff --git a/VECTO/GUI/F_Settings.resx b/VECTO/GUI/F_Settings.resx new file mode 100644 index 0000000000000000000000000000000000000000..d58980a38d71402abe7cf7bbbdeb69d761a29c47 --- /dev/null +++ b/VECTO/GUI/F_Settings.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_Settings.vb b/VECTO/GUI/F_Settings.vb new file mode 100644 index 0000000000000000000000000000000000000000..c9b09db7185a46c91cf406ad47fa50e33a2947c0 --- /dev/null +++ b/VECTO/GUI/F_Settings.vb @@ -0,0 +1,79 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Settings form +''' </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 + +End Class diff --git a/VECTO/GUI/F_ShutDown.Designer.vb b/VECTO/GUI/F_ShutDown.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..fa354eadf5ba2c932c3b116d501bc155659b297f --- /dev/null +++ b/VECTO/GUI/F_ShutDown.Designer.vb @@ -0,0 +1,100 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_ShutDown + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container + Me.Cancel_Button = New System.Windows.Forms.Button + Me.Label1 = New System.Windows.Forms.Label + Me.LbTime = New System.Windows.Forms.Label + Me.Timer1 = New System.Windows.Forms.Timer(Me.components) + Me.SuspendLayout() + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(12, 54) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(191, 49) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "ABORT" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 21) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(127, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "System will shut down in: " + ' + 'LbTime + ' + Me.LbTime.AutoSize = True + Me.LbTime.Location = New System.Drawing.Point(145, 21) + Me.LbTime.Name = "LbTime" + Me.LbTime.Size = New System.Drawing.Size(19, 13) + Me.LbTime.TabIndex = 3 + Me.LbTime.Text = "00" + ' + 'Timer1 + ' + Me.Timer1.Interval = 1000 + ' + 'F_ShutDown + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(215, 115) + Me.ControlBox = False + Me.Controls.Add(Me.LbTime) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Cancel_Button) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_ShutDown" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Automatic Shutdown" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents LbTime As System.Windows.Forms.Label + Friend WithEvents Timer1 As System.Windows.Forms.Timer + +End Class diff --git a/VECTO/GUI/F_ShutDown.resx b/VECTO/GUI/F_ShutDown.resx new file mode 100644 index 0000000000000000000000000000000000000000..cce5ec210e7417c39f73c30c232b1dc64e2a1694 --- /dev/null +++ b/VECTO/GUI/F_ShutDown.resx @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_ShutDown.vb b/VECTO/GUI/F_ShutDown.vb new file mode 100644 index 0000000000000000000000000000000000000000..0f363507004a93a71390bf32347eb27f646b5565 --- /dev/null +++ b/VECTO/GUI/F_ShutDown.vb @@ -0,0 +1,105 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms +Imports System.Runtime.InteropServices + +''' <summary> +''' Automatic shutdown dialog. Allows to abort automatic shutdown within 100 seconds. +''' </summary> +''' <remarks></remarks> +Public Class F_ShutDown + + Private iTime As Int16 + Private objExitWin As New cWrapExitWindows() + + Public Function ShutDown() As Boolean + If Me.ShowDialog = Windows.Forms.DialogResult.Cancel Then + Me.Timer1.Stop() + Return False + Else + Me.Timer1.Stop() + Return True + End If + End Function + + Private Sub F_ShutDown_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + iTime = 99 + Me.LbTime.Text = iTime + 1 + Me.Timer1.Start() + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.Timer1.Stop() + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick + Me.LbTime.Text = iTime + If iTime = 0 Then + Me.Timer1.Stop() + Try + objExitWin.ExitWindows(cWrapExitWindows.Action.Shutdown) + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Catch ex As Exception + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + End Try + Me.Close() + End If + iTime -= 1 + End Sub + + Private Class cWrapExitWindows + + Private Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Int32, ByVal dwReserved As Int32) As Boolean + Private Declare Function GetCurrentProcess Lib "kernel32.dll" () As IntPtr + Private Declare Sub OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As IntPtr, ByVal DesiredAccess As Int32, ByRef TokenHandle As IntPtr) + Private Declare Sub LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, ByRef lpLuid As Long) + Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As IntPtr, ByVal DisableAllPrivileges As Boolean, ByRef NewState As LUID, ByVal BufferLength As Int32, ByVal PreviousState As IntPtr, ByVal ReturnLength As IntPtr) As Boolean + + <StructLayout(LayoutKind.Sequential, Pack:=1)> _ + Friend Structure LUID + Public Count As Integer + Public LUID As Long + Public Attribute As Integer + End Structure + + Public Enum Action + LogOff = 0 + Shutdown = 1 + Restart = 2 + PowerOff = 8 + End Enum + + Public Sub ExitWindows(ByVal how As Action, Optional ByVal Forced As Boolean = True) + Dim TokenPrivilege As LUID + Dim hProcess As IntPtr = GetCurrentProcess() + Dim hToken As IntPtr = IntPtr.Zero + OpenProcessToken(hProcess, &H28, hToken) + TokenPrivilege.Count = 1 + TokenPrivilege.LUID = 0 + TokenPrivilege.Attribute = 2 + LookupPrivilegeValue(Nothing, "SeShutdownPrivilege", TokenPrivilege.LUID) + AdjustTokenPrivileges(hToken, False, TokenPrivilege, 0, IntPtr.Zero, IntPtr.Zero) + If Forced Then + ExitWindowsEx(how + 4, 0) + Else + ExitWindowsEx(how, 0) + End If + End Sub + + End Class + + +End Class + + + diff --git a/VECTO/GUI/F_StrInpBox.designer.vb b/VECTO/GUI/F_StrInpBox.designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..de52d55a6802ad61fd45ac39617473db445ea344 --- /dev/null +++ b/VECTO/GUI/F_StrInpBox.designer.vb @@ -0,0 +1,121 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_StrInpBox + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(277, 82) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 5 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 9) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(39, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Label1" + ' + 'TextBox1 + ' + Me.TextBox1.Location = New System.Drawing.Point(12, 35) + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(411, 20) + Me.TextBox1.TabIndex = 2 + ' + 'F_StrInpBox + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(435, 123) + Me.Controls.Add(Me.TextBox1) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_StrInpBox" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "VECTO" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TextBox1 As System.Windows.Forms.TextBox + +End Class diff --git a/VECTO/GUI/F_StrInpBox.resx b/VECTO/GUI/F_StrInpBox.resx new file mode 100644 index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04 --- /dev/null +++ b/VECTO/GUI/F_StrInpBox.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_StrInpBox.vb b/VECTO/GUI/F_StrInpBox.vb new file mode 100644 index 0000000000000000000000000000000000000000..819c24cdba770fcb38765d9b80ec7ab8da57e26d --- /dev/null +++ b/VECTO/GUI/F_StrInpBox.vb @@ -0,0 +1,45 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms + +''' <summary> +''' String input dialog for changing DEV option values. Default input box cannot process empty strings (emtpy string = Cancel). +''' </summary> +''' <remarks></remarks> +Public Class F_StrInpBox + + Public Function ShowDlog(ByVal Prompt As String, ByVal DefaultRespone As String) As String + Me.Label1.Text = Prompt + Me.TextBox1.Text = DefaultRespone + If Me.ShowDialog = Windows.Forms.DialogResult.OK Then + DefaultRespone = Me.TextBox1.Text + End If + Return DefaultRespone + End Function + + Private Sub F_StrInpBox_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown + Me.TextBox1.SelectAll() + Me.TextBox1.Focus() + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 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 + + + +End Class diff --git a/VECTO/GUI/F_VECTO.Designer.vb b/VECTO/GUI/F_VECTO.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..a8d8868ab1344df339de8ac4c7f22c62ba20c540 --- /dev/null +++ b/VECTO/GUI/F_VECTO.Designer.vb @@ -0,0 +1,1174 @@ +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_VECTO + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_VECTO)) + Me.TabPgGen = New System.Windows.Forms.TabPage() + Me.GrCycles = New System.Windows.Forms.GroupBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.LvCycles = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.BtDRIrem = New System.Windows.Forms.Button() + Me.BtDRIadd = New System.Windows.Forms.Button() + Me.GrAux = New System.Windows.Forms.GroupBox() + Me.Label32 = New System.Windows.Forms.Label() + Me.LvAux = New System.Windows.Forms.ListView() + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ButAuxRem = New System.Windows.Forms.Button() + Me.ButAuxAdd = New System.Windows.Forms.Button() + Me.TbGBX = New System.Windows.Forms.TextBox() + Me.TbENG = New System.Windows.Forms.TextBox() + Me.TbVEH = New System.Windows.Forms.TextBox() + Me.ButOpenGBX = New System.Windows.Forms.Button() + Me.ButOpenENG = New System.Windows.Forms.Button() + Me.ButOpenVEH = New System.Windows.Forms.Button() + Me.ButtonVEH = New System.Windows.Forms.Button() + Me.ButtonGBX = New System.Windows.Forms.Button() + Me.ButtonMAP = New System.Windows.Forms.Button() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPgDriver = New System.Windows.Forms.TabPage() + Me.GrVACC = New System.Windows.Forms.GroupBox() + Me.TbDesMaxFile = New System.Windows.Forms.TextBox() + Me.BtDesMaxBr = New System.Windows.Forms.Button() + Me.BtAccOpen = New System.Windows.Forms.Button() + Me.GrLAC = New System.Windows.Forms.GroupBox() + Me.PnLookAhead = New System.Windows.Forms.Panel() + Me.Label29 = New System.Windows.Forms.Label() + Me.Label25 = New System.Windows.Forms.Label() + Me.TbAlookahead = New System.Windows.Forms.TextBox() + Me.Label24 = New System.Windows.Forms.Label() + Me.TbVminLA = New System.Windows.Forms.TextBox() + Me.Label28 = New System.Windows.Forms.Label() + Me.CbLookAhead = New System.Windows.Forms.CheckBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.PnEcoRoll = New System.Windows.Forms.Panel() + Me.Label21 = New System.Windows.Forms.Label() + Me.Label20 = New System.Windows.Forms.Label() + Me.Label14 = New System.Windows.Forms.Label() + Me.TbVmin = New System.Windows.Forms.TextBox() + Me.TbUnderSpeed = New System.Windows.Forms.TextBox() + Me.TbOverspeed = New System.Windows.Forms.TextBox() + Me.Label23 = New System.Windows.Forms.Label() + Me.Label22 = New System.Windows.Forms.Label() + Me.Label13 = New System.Windows.Forms.Label() + Me.RdEcoRoll = New System.Windows.Forms.RadioButton() + Me.RdOverspeed = New System.Windows.Forms.RadioButton() + Me.RdOff = New System.Windows.Forms.RadioButton() + Me.GrStartStop = New System.Windows.Forms.GroupBox() + Me.PnStartStop = New System.Windows.Forms.Panel() + Me.Label31 = New System.Windows.Forms.Label() + Me.Label27 = New System.Windows.Forms.Label() + Me.TbSSspeed = New System.Windows.Forms.TextBox() + Me.LabelSSspeed = New System.Windows.Forms.Label() + Me.Label26 = New System.Windows.Forms.Label() + Me.Label30 = New System.Windows.Forms.Label() + Me.LabelSStime = New System.Windows.Forms.Label() + Me.TbSSdelay = New System.Windows.Forms.TextBox() + Me.TbSStime = New System.Windows.Forms.TextBox() + Me.ChBStartStop = New System.Windows.Forms.CheckBox() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.ToolStripStatusLabelGEN = New System.Windows.Forms.ToolStripStatusLabel() + Me.ButOK = New System.Windows.Forms.Button() + Me.ButCancel = New System.Windows.Forms.Button() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.CbEngOnly = New System.Windows.Forms.CheckBox() + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PicVehicle = New System.Windows.Forms.PictureBox() + Me.PicBox = New System.Windows.Forms.PictureBox() + Me.TbEngTxt = New System.Windows.Forms.TextBox() + Me.TbVehCat = New System.Windows.Forms.TextBox() + Me.TbAxleConf = New System.Windows.Forms.TextBox() + Me.TbHVCclass = New System.Windows.Forms.TextBox() + Me.TbGbxTxt = New System.Windows.Forms.TextBox() + Me.TbMass = New System.Windows.Forms.TextBox() + Me.TabPgGen.SuspendLayout() + Me.GrCycles.SuspendLayout() + Me.GrAux.SuspendLayout() + Me.TabControl1.SuspendLayout() + Me.TabPgDriver.SuspendLayout() + Me.GrVACC.SuspendLayout() + Me.GrLAC.SuspendLayout() + Me.PnLookAhead.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.PnEcoRoll.SuspendLayout() + Me.GrStartStop.SuspendLayout() + Me.PnStartStop.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.CmOpenFile.SuspendLayout() + CType(Me.PicVehicle, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'TabPgGen + ' + Me.TabPgGen.Controls.Add(Me.GrCycles) + Me.TabPgGen.Controls.Add(Me.GrAux) + Me.TabPgGen.Controls.Add(Me.TbGBX) + Me.TabPgGen.Controls.Add(Me.TbENG) + Me.TabPgGen.Controls.Add(Me.TbVEH) + Me.TabPgGen.Controls.Add(Me.ButOpenGBX) + Me.TabPgGen.Controls.Add(Me.ButOpenENG) + Me.TabPgGen.Controls.Add(Me.ButOpenVEH) + Me.TabPgGen.Controls.Add(Me.ButtonVEH) + Me.TabPgGen.Controls.Add(Me.ButtonGBX) + Me.TabPgGen.Controls.Add(Me.ButtonMAP) + Me.TabPgGen.Location = New System.Drawing.Point(4, 22) + Me.TabPgGen.Name = "TabPgGen" + Me.TabPgGen.Padding = New System.Windows.Forms.Padding(3) + Me.TabPgGen.Size = New System.Drawing.Size(527, 491) + Me.TabPgGen.TabIndex = 0 + Me.TabPgGen.Text = "General" + Me.TabPgGen.UseVisualStyleBackColor = True + ' + 'GrCycles + ' + Me.GrCycles.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GrCycles.Controls.Add(Me.Label2) + Me.GrCycles.Controls.Add(Me.LvCycles) + Me.GrCycles.Controls.Add(Me.BtDRIrem) + Me.GrCycles.Controls.Add(Me.BtDRIadd) + Me.GrCycles.Location = New System.Drawing.Point(7, 271) + Me.GrCycles.Name = "GrCycles" + Me.GrCycles.Size = New System.Drawing.Size(515, 208) + Me.GrCycles.TabIndex = 34 + Me.GrCycles.TabStop = False + Me.GrCycles.Text = "Cycles" + ' + 'Label2 + ' + Me.Label2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(387, 153) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(122, 13) + Me.Label2.TabIndex = 33 + Me.Label2.Text = "Double-Click to open file" + ' + 'LvCycles + ' + Me.LvCycles.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvCycles.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1}) + Me.LvCycles.FullRowSelect = True + Me.LvCycles.GridLines = True + Me.LvCycles.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None + Me.LvCycles.HideSelection = False + Me.LvCycles.LabelEdit = True + Me.LvCycles.Location = New System.Drawing.Point(6, 19) + Me.LvCycles.MultiSelect = False + Me.LvCycles.Name = "LvCycles" + Me.LvCycles.Size = New System.Drawing.Size(503, 123) + Me.LvCycles.TabIndex = 0 + Me.LvCycles.TabStop = False + Me.LvCycles.UseCompatibleStateImageBehavior = False + Me.LvCycles.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Cycle path" + Me.ColumnHeader1.Width = 470 + ' + 'BtDRIrem + ' + Me.BtDRIrem.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtDRIrem.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtDRIrem.Location = New System.Drawing.Point(41, 148) + Me.BtDRIrem.Name = "BtDRIrem" + Me.BtDRIrem.Size = New System.Drawing.Size(29, 23) + Me.BtDRIrem.TabIndex = 32 + Me.BtDRIrem.UseVisualStyleBackColor = True + ' + 'BtDRIadd + ' + Me.BtDRIadd.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtDRIadd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtDRIadd.Location = New System.Drawing.Point(6, 148) + Me.BtDRIadd.Name = "BtDRIadd" + Me.BtDRIadd.Size = New System.Drawing.Size(29, 23) + Me.BtDRIadd.TabIndex = 31 + Me.BtDRIadd.UseVisualStyleBackColor = True + ' + 'GrAux + ' + Me.GrAux.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GrAux.Controls.Add(Me.Label32) + Me.GrAux.Controls.Add(Me.LvAux) + Me.GrAux.Controls.Add(Me.ButAuxRem) + Me.GrAux.Controls.Add(Me.ButAuxAdd) + Me.GrAux.Location = New System.Drawing.Point(6, 87) + Me.GrAux.Name = "GrAux" + Me.GrAux.Size = New System.Drawing.Size(515, 209) + Me.GrAux.TabIndex = 33 + Me.GrAux.TabStop = False + Me.GrAux.Text = "Auxiliaries" + ' + 'Label32 + ' + Me.Label32.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label32.AutoSize = True + Me.Label32.Location = New System.Drawing.Point(369, 147) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(139, 13) + Me.Label32.TabIndex = 34 + Me.Label32.Text = "Double-Click to edit auxiliary" + ' + 'LvAux + ' + Me.LvAux.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvAux.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6}) + Me.LvAux.FullRowSelect = True + Me.LvAux.GridLines = True + Me.LvAux.HideSelection = False + Me.LvAux.Location = New System.Drawing.Point(6, 19) + Me.LvAux.MultiSelect = False + Me.LvAux.Name = "LvAux" + Me.LvAux.Size = New System.Drawing.Size(503, 117) + Me.LvAux.TabIndex = 30 + Me.LvAux.TabStop = False + Me.LvAux.UseCompatibleStateImageBehavior = False + Me.LvAux.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "ID" + Me.ColumnHeader4.Width = 45 + ' + 'ColumnHeader5 + ' + Me.ColumnHeader5.Text = "Type" + Me.ColumnHeader5.Width = 108 + ' + 'ColumnHeader6 + ' + Me.ColumnHeader6.Text = "Input File" + Me.ColumnHeader6.Width = 331 + ' + 'ButAuxRem + ' + Me.ButAuxRem.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.ButAuxRem.Location = New System.Drawing.Point(42, 142) + Me.ButAuxRem.Name = "ButAuxRem" + Me.ButAuxRem.Size = New System.Drawing.Size(29, 23) + Me.ButAuxRem.TabIndex = 32 + Me.ButAuxRem.UseVisualStyleBackColor = True + ' + 'ButAuxAdd + ' + Me.ButAuxAdd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.ButAuxAdd.Location = New System.Drawing.Point(7, 142) + Me.ButAuxAdd.Name = "ButAuxAdd" + Me.ButAuxAdd.Size = New System.Drawing.Size(29, 23) + Me.ButAuxAdd.TabIndex = 31 + Me.ButAuxAdd.UseVisualStyleBackColor = True + ' + 'TbGBX + ' + Me.TbGBX.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbGBX.Location = New System.Drawing.Point(84, 60) + Me.TbGBX.Name = "TbGBX" + Me.TbGBX.Size = New System.Drawing.Size(406, 20) + Me.TbGBX.TabIndex = 3 + ' + 'TbENG + ' + Me.TbENG.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbENG.Location = New System.Drawing.Point(84, 33) + Me.TbENG.Name = "TbENG" + Me.TbENG.Size = New System.Drawing.Size(406, 20) + Me.TbENG.TabIndex = 2 + ' + 'TbVEH + ' + Me.TbVEH.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbVEH.Location = New System.Drawing.Point(84, 7) + Me.TbVEH.Name = "TbVEH" + Me.TbVEH.Size = New System.Drawing.Size(406, 20) + Me.TbVEH.TabIndex = 1 + ' + 'ButOpenGBX + ' + Me.ButOpenGBX.Location = New System.Drawing.Point(6, 60) + Me.ButOpenGBX.Name = "ButOpenGBX" + Me.ButOpenGBX.Size = New System.Drawing.Size(72, 21) + Me.ButOpenGBX.TabIndex = 22 + Me.ButOpenGBX.TabStop = False + Me.ButOpenGBX.Text = "Gearbox" + Me.ButOpenGBX.UseVisualStyleBackColor = True + ' + 'ButOpenENG + ' + Me.ButOpenENG.Location = New System.Drawing.Point(6, 33) + Me.ButOpenENG.Name = "ButOpenENG" + Me.ButOpenENG.Size = New System.Drawing.Size(72, 21) + Me.ButOpenENG.TabIndex = 21 + Me.ButOpenENG.TabStop = False + Me.ButOpenENG.Text = "Engine" + Me.ButOpenENG.UseVisualStyleBackColor = True + ' + 'ButOpenVEH + ' + Me.ButOpenVEH.Location = New System.Drawing.Point(6, 6) + Me.ButOpenVEH.Name = "ButOpenVEH" + Me.ButOpenVEH.Size = New System.Drawing.Size(72, 21) + Me.ButOpenVEH.TabIndex = 20 + Me.ButOpenVEH.TabStop = False + Me.ButOpenVEH.Text = "Vehicle" + Me.ButOpenVEH.UseVisualStyleBackColor = True + ' + 'ButtonVEH + ' + Me.ButtonVEH.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonVEH.Location = New System.Drawing.Point(496, 6) + Me.ButtonVEH.Name = "ButtonVEH" + Me.ButtonVEH.Size = New System.Drawing.Size(28, 21) + Me.ButtonVEH.TabIndex = 11 + Me.ButtonVEH.TabStop = False + Me.ButtonVEH.Text = "..." + Me.ButtonVEH.UseVisualStyleBackColor = True + ' + 'ButtonGBX + ' + Me.ButtonGBX.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonGBX.Location = New System.Drawing.Point(496, 60) + Me.ButtonGBX.Name = "ButtonGBX" + Me.ButtonGBX.Size = New System.Drawing.Size(28, 21) + Me.ButtonGBX.TabIndex = 13 + Me.ButtonGBX.TabStop = False + Me.ButtonGBX.Text = "..." + Me.ButtonGBX.UseVisualStyleBackColor = True + ' + 'ButtonMAP + ' + Me.ButtonMAP.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonMAP.Location = New System.Drawing.Point(496, 33) + Me.ButtonMAP.Name = "ButtonMAP" + Me.ButtonMAP.Size = New System.Drawing.Size(28, 21) + Me.ButtonMAP.TabIndex = 12 + Me.ButtonMAP.TabStop = False + Me.ButtonMAP.Text = "..." + Me.ButtonMAP.UseVisualStyleBackColor = True + ' + 'TabControl1 + ' + Me.TabControl1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TabControl1.Controls.Add(Me.TabPgGen) + Me.TabControl1.Controls.Add(Me.TabPgDriver) + Me.TabControl1.Location = New System.Drawing.Point(1, 107) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(535, 517) + Me.TabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed + Me.TabControl1.TabIndex = 1 + ' + 'TabPgDriver + ' + Me.TabPgDriver.Controls.Add(Me.GrVACC) + Me.TabPgDriver.Controls.Add(Me.GrLAC) + Me.TabPgDriver.Controls.Add(Me.GroupBox1) + Me.TabPgDriver.Controls.Add(Me.GrStartStop) + Me.TabPgDriver.Location = New System.Drawing.Point(4, 22) + Me.TabPgDriver.Name = "TabPgDriver" + Me.TabPgDriver.Padding = New System.Windows.Forms.Padding(3) + Me.TabPgDriver.Size = New System.Drawing.Size(527, 491) + Me.TabPgDriver.TabIndex = 7 + Me.TabPgDriver.Text = "Driver Assist" + Me.TabPgDriver.UseVisualStyleBackColor = True + ' + 'GrVACC + ' + Me.GrVACC.Controls.Add(Me.TbDesMaxFile) + Me.GrVACC.Controls.Add(Me.BtDesMaxBr) + Me.GrVACC.Controls.Add(Me.BtAccOpen) + Me.GrVACC.Location = New System.Drawing.Point(6, 401) + Me.GrVACC.Name = "GrVACC" + Me.GrVACC.Size = New System.Drawing.Size(515, 84) + Me.GrVACC.TabIndex = 34 + Me.GrVACC.TabStop = False + Me.GrVACC.Text = "Max. acceleration and brake curves" + ' + 'TbDesMaxFile + ' + Me.TbDesMaxFile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbDesMaxFile.Location = New System.Drawing.Point(6, 29) + Me.TbDesMaxFile.Name = "TbDesMaxFile" + Me.TbDesMaxFile.Size = New System.Drawing.Size(440, 20) + Me.TbDesMaxFile.TabIndex = 0 + ' + 'BtDesMaxBr + ' + Me.BtDesMaxBr.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtDesMaxBr.Location = New System.Drawing.Point(452, 28) + Me.BtDesMaxBr.Name = "BtDesMaxBr" + Me.BtDesMaxBr.Size = New System.Drawing.Size(28, 21) + Me.BtDesMaxBr.TabIndex = 1 + Me.BtDesMaxBr.Text = "..." + Me.BtDesMaxBr.UseVisualStyleBackColor = True + ' + 'BtAccOpen + ' + Me.BtAccOpen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtAccOpen.Image = Global.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtAccOpen.Location = New System.Drawing.Point(486, 27) + Me.BtAccOpen.Name = "BtAccOpen" + Me.BtAccOpen.Size = New System.Drawing.Size(23, 23) + Me.BtAccOpen.TabIndex = 2 + Me.BtAccOpen.TabStop = False + Me.BtAccOpen.UseVisualStyleBackColor = True + ' + 'GrLAC + ' + Me.GrLAC.Controls.Add(Me.PnLookAhead) + Me.GrLAC.Controls.Add(Me.CbLookAhead) + Me.GrLAC.Location = New System.Drawing.Point(7, 290) + Me.GrLAC.Name = "GrLAC" + Me.GrLAC.Size = New System.Drawing.Size(514, 105) + Me.GrLAC.TabIndex = 5 + Me.GrLAC.TabStop = False + Me.GrLAC.Text = "Look-Ahead Coasting" + ' + 'PnLookAhead + ' + Me.PnLookAhead.Controls.Add(Me.Label29) + Me.PnLookAhead.Controls.Add(Me.Label25) + Me.PnLookAhead.Controls.Add(Me.TbAlookahead) + Me.PnLookAhead.Controls.Add(Me.Label24) + Me.PnLookAhead.Controls.Add(Me.TbVminLA) + Me.PnLookAhead.Controls.Add(Me.Label28) + Me.PnLookAhead.Location = New System.Drawing.Point(117, 10) + Me.PnLookAhead.Name = "PnLookAhead" + Me.PnLookAhead.Size = New System.Drawing.Size(252, 71) + Me.PnLookAhead.TabIndex = 1 + ' + 'Label29 + ' + Me.Label29.AutoSize = True + Me.Label29.Location = New System.Drawing.Point(197, 38) + Me.Label29.Name = "Label29" + Me.Label29.Size = New System.Drawing.Size(38, 13) + Me.Label29.TabIndex = 3 + Me.Label29.Text = "[km/h]" + ' + 'Label25 + ' + Me.Label25.AutoSize = True + Me.Label25.Location = New System.Drawing.Point(197, 12) + Me.Label25.Name = "Label25" + Me.Label25.Size = New System.Drawing.Size(34, 13) + Me.Label25.TabIndex = 3 + Me.Label25.Text = "[m/s²]" + ' + 'TbAlookahead + ' + Me.TbAlookahead.Location = New System.Drawing.Point(127, 9) + Me.TbAlookahead.Name = "TbAlookahead" + Me.TbAlookahead.Size = New System.Drawing.Size(64, 20) + Me.TbAlookahead.TabIndex = 0 + ' + 'Label24 + ' + Me.Label24.AutoSize = True + Me.Label24.Location = New System.Drawing.Point(25, 12) + Me.Label24.Name = "Label24" + Me.Label24.Size = New System.Drawing.Size(96, 13) + Me.Label24.TabIndex = 1 + Me.Label24.Text = "Target Retardation" + ' + 'TbVminLA + ' + Me.TbVminLA.Location = New System.Drawing.Point(127, 35) + Me.TbVminLA.Name = "TbVminLA" + Me.TbVminLA.Size = New System.Drawing.Size(64, 20) + Me.TbVminLA.TabIndex = 1 + ' + 'Label28 + ' + Me.Label28.AutoSize = True + Me.Label28.Location = New System.Drawing.Point(41, 38) + Me.Label28.Name = "Label28" + Me.Label28.Size = New System.Drawing.Size(80, 13) + Me.Label28.TabIndex = 1 + Me.Label28.Text = "Minimum speed" + ' + 'CbLookAhead + ' + Me.CbLookAhead.AutoSize = True + Me.CbLookAhead.Checked = True + Me.CbLookAhead.CheckState = System.Windows.Forms.CheckState.Checked + Me.CbLookAhead.Location = New System.Drawing.Point(16, 21) + Me.CbLookAhead.Name = "CbLookAhead" + Me.CbLookAhead.Size = New System.Drawing.Size(65, 17) + Me.CbLookAhead.TabIndex = 0 + Me.CbLookAhead.Text = "Enabled" + Me.CbLookAhead.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.PnEcoRoll) + Me.GroupBox1.Controls.Add(Me.RdEcoRoll) + Me.GroupBox1.Controls.Add(Me.RdOverspeed) + Me.GroupBox1.Controls.Add(Me.RdOff) + Me.GroupBox1.Location = New System.Drawing.Point(6, 149) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(515, 135) + Me.GroupBox1.TabIndex = 4 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Overspeed / Eco-Roll" + ' + 'PnEcoRoll + ' + Me.PnEcoRoll.Controls.Add(Me.Label21) + Me.PnEcoRoll.Controls.Add(Me.Label20) + Me.PnEcoRoll.Controls.Add(Me.Label14) + Me.PnEcoRoll.Controls.Add(Me.TbVmin) + Me.PnEcoRoll.Controls.Add(Me.TbUnderSpeed) + Me.PnEcoRoll.Controls.Add(Me.TbOverspeed) + Me.PnEcoRoll.Controls.Add(Me.Label23) + Me.PnEcoRoll.Controls.Add(Me.Label22) + Me.PnEcoRoll.Controls.Add(Me.Label13) + Me.PnEcoRoll.Location = New System.Drawing.Point(137, 16) + Me.PnEcoRoll.Name = "PnEcoRoll" + Me.PnEcoRoll.Size = New System.Drawing.Size(232, 102) + Me.PnEcoRoll.TabIndex = 6 + ' + 'Label21 + ' + Me.Label21.AutoSize = True + Me.Label21.Location = New System.Drawing.Point(178, 61) + Me.Label21.Name = "Label21" + Me.Label21.Size = New System.Drawing.Size(38, 13) + Me.Label21.TabIndex = 3 + Me.Label21.Text = "[km/h]" + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Location = New System.Drawing.Point(178, 35) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(38, 13) + Me.Label20.TabIndex = 3 + Me.Label20.Text = "[km/h]" + ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.Location = New System.Drawing.Point(178, 9) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(38, 13) + Me.Label14.TabIndex = 3 + Me.Label14.Text = "[km/h]" + ' + 'TbVmin + ' + Me.TbVmin.Location = New System.Drawing.Point(108, 58) + Me.TbVmin.Name = "TbVmin" + Me.TbVmin.Size = New System.Drawing.Size(64, 20) + Me.TbVmin.TabIndex = 5 + ' + 'TbUnderSpeed + ' + Me.TbUnderSpeed.Location = New System.Drawing.Point(108, 32) + Me.TbUnderSpeed.Name = "TbUnderSpeed" + Me.TbUnderSpeed.Size = New System.Drawing.Size(64, 20) + Me.TbUnderSpeed.TabIndex = 4 + ' + 'TbOverspeed + ' + Me.TbOverspeed.Location = New System.Drawing.Point(108, 6) + Me.TbOverspeed.Name = "TbOverspeed" + Me.TbOverspeed.Size = New System.Drawing.Size(64, 20) + Me.TbOverspeed.TabIndex = 3 + ' + 'Label23 + ' + Me.Label23.AutoSize = True + Me.Label23.Location = New System.Drawing.Point(22, 61) + Me.Label23.Name = "Label23" + Me.Label23.Size = New System.Drawing.Size(80, 13) + Me.Label23.TabIndex = 1 + Me.Label23.Text = "Minimum speed" + ' + 'Label22 + ' + Me.Label22.AutoSize = True + Me.Label22.Location = New System.Drawing.Point(11, 35) + Me.Label22.Name = "Label22" + Me.Label22.Size = New System.Drawing.Size(91, 13) + Me.Label22.TabIndex = 1 + Me.Label22.Text = "Max. Underspeed" + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.Location = New System.Drawing.Point(17, 9) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(85, 13) + Me.Label13.TabIndex = 1 + Me.Label13.Text = "Max. Overspeed" + ' + 'RdEcoRoll + ' + Me.RdEcoRoll.AutoSize = True + Me.RdEcoRoll.Checked = True + Me.RdEcoRoll.Location = New System.Drawing.Point(13, 68) + Me.RdEcoRoll.Name = "RdEcoRoll" + Me.RdEcoRoll.Size = New System.Drawing.Size(65, 17) + Me.RdEcoRoll.TabIndex = 2 + Me.RdEcoRoll.TabStop = True + Me.RdEcoRoll.Text = "Eco-Roll" + Me.RdEcoRoll.UseVisualStyleBackColor = True + ' + 'RdOverspeed + ' + Me.RdOverspeed.AutoSize = True + Me.RdOverspeed.Location = New System.Drawing.Point(13, 45) + Me.RdOverspeed.Name = "RdOverspeed" + Me.RdOverspeed.Size = New System.Drawing.Size(77, 17) + Me.RdOverspeed.TabIndex = 1 + Me.RdOverspeed.Text = "Overspeed" + Me.RdOverspeed.UseVisualStyleBackColor = True + ' + 'RdOff + ' + Me.RdOff.AutoSize = True + Me.RdOff.Location = New System.Drawing.Point(13, 22) + Me.RdOff.Name = "RdOff" + Me.RdOff.Size = New System.Drawing.Size(39, 17) + Me.RdOff.TabIndex = 0 + Me.RdOff.Text = "Off" + Me.RdOff.UseVisualStyleBackColor = True + ' + 'GrStartStop + ' + Me.GrStartStop.Controls.Add(Me.PnStartStop) + Me.GrStartStop.Controls.Add(Me.ChBStartStop) + Me.GrStartStop.Location = New System.Drawing.Point(6, 6) + Me.GrStartStop.Name = "GrStartStop" + Me.GrStartStop.Size = New System.Drawing.Size(515, 137) + Me.GrStartStop.TabIndex = 3 + Me.GrStartStop.TabStop = False + Me.GrStartStop.Text = "Engine Start Stop" + ' + 'PnStartStop + ' + Me.PnStartStop.Controls.Add(Me.Label31) + Me.PnStartStop.Controls.Add(Me.Label27) + Me.PnStartStop.Controls.Add(Me.TbSSspeed) + Me.PnStartStop.Controls.Add(Me.LabelSSspeed) + Me.PnStartStop.Controls.Add(Me.Label26) + Me.PnStartStop.Controls.Add(Me.Label30) + Me.PnStartStop.Controls.Add(Me.LabelSStime) + Me.PnStartStop.Controls.Add(Me.TbSSdelay) + Me.PnStartStop.Controls.Add(Me.TbSStime) + Me.PnStartStop.Location = New System.Drawing.Point(87, 21) + Me.PnStartStop.Name = "PnStartStop" + Me.PnStartStop.Size = New System.Drawing.Size(422, 95) + Me.PnStartStop.TabIndex = 1 + ' + 'Label31 + ' + Me.Label31.AutoSize = True + Me.Label31.Location = New System.Drawing.Point(228, 58) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(18, 13) + Me.Label31.TabIndex = 38 + Me.Label31.Text = "[s]" + ' + 'Label27 + ' + Me.Label27.AutoSize = True + Me.Label27.Location = New System.Drawing.Point(228, 32) + Me.Label27.Name = "Label27" + Me.Label27.Size = New System.Drawing.Size(18, 13) + Me.Label27.TabIndex = 38 + Me.Label27.Text = "[s]" + ' + 'TbSSspeed + ' + Me.TbSSspeed.Location = New System.Drawing.Point(158, 3) + Me.TbSSspeed.Name = "TbSSspeed" + Me.TbSSspeed.Size = New System.Drawing.Size(64, 20) + Me.TbSSspeed.TabIndex = 0 + ' + 'LabelSSspeed + ' + Me.LabelSSspeed.AutoSize = True + Me.LabelSSspeed.Location = New System.Drawing.Point(91, 6) + Me.LabelSSspeed.Name = "LabelSSspeed" + Me.LabelSSspeed.Size = New System.Drawing.Size(61, 13) + Me.LabelSSspeed.TabIndex = 37 + Me.LabelSSspeed.Text = "Max Speed" + ' + 'Label26 + ' + Me.Label26.AutoSize = True + Me.Label26.Location = New System.Drawing.Point(228, 6) + Me.Label26.Name = "Label26" + Me.Label26.Size = New System.Drawing.Size(38, 13) + Me.Label26.TabIndex = 38 + Me.Label26.Text = "[km/h]" + ' + 'Label30 + ' + Me.Label30.AutoSize = True + Me.Label30.Location = New System.Drawing.Point(68, 58) + Me.Label30.Name = "Label30" + Me.Label30.Size = New System.Drawing.Size(84, 13) + Me.Label30.TabIndex = 35 + Me.Label30.Text = "Activation Delay" + ' + 'LabelSStime + ' + Me.LabelSStime.AutoSize = True + Me.LabelSStime.Location = New System.Drawing.Point(65, 32) + Me.LabelSStime.Name = "LabelSStime" + Me.LabelSStime.Size = New System.Drawing.Size(87, 13) + Me.LabelSStime.TabIndex = 35 + Me.LabelSStime.Text = "Min ICE-On Time" + ' + 'TbSSdelay + ' + Me.TbSSdelay.Location = New System.Drawing.Point(158, 55) + Me.TbSSdelay.Name = "TbSSdelay" + Me.TbSSdelay.Size = New System.Drawing.Size(64, 20) + Me.TbSSdelay.TabIndex = 1 + ' + 'TbSStime + ' + Me.TbSStime.Location = New System.Drawing.Point(158, 29) + Me.TbSStime.Name = "TbSStime" + Me.TbSStime.Size = New System.Drawing.Size(64, 20) + Me.TbSStime.TabIndex = 1 + ' + 'ChBStartStop + ' + Me.ChBStartStop.AutoSize = True + Me.ChBStartStop.Checked = True + Me.ChBStartStop.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChBStartStop.Location = New System.Drawing.Point(16, 21) + Me.ChBStartStop.Name = "ChBStartStop" + Me.ChBStartStop.Size = New System.Drawing.Size(65, 17) + Me.ChBStartStop.TabIndex = 0 + Me.ChBStartStop.Text = "Enabled" + Me.ChBStartStop.UseVisualStyleBackColor = True + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabelGEN}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 627) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(944, 22) + Me.StatusStrip1.SizingGrip = False + Me.StatusStrip1.TabIndex = 6 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'ToolStripStatusLabelGEN + ' + Me.ToolStripStatusLabelGEN.Name = "ToolStripStatusLabelGEN" + Me.ToolStripStatusLabelGEN.Size = New System.Drawing.Size(121, 17) + Me.ToolStripStatusLabelGEN.Text = "ToolStripStatusLabel1" + ' + 'ButOK + ' + Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButOK.Location = New System.Drawing.Point(779, 601) + Me.ButOK.Name = "ButOK" + Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.TabIndex = 11 + Me.ButOK.Text = "Save" + Me.ButOK.UseVisualStyleBackColor = True + ' + 'ButCancel + ' + Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButCancel.Location = New System.Drawing.Point(860, 601) + Me.ButCancel.Name = "ButCancel" + Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.TabIndex = 19 + Me.ButCancel.Text = "Cancel" + Me.ButCancel.UseVisualStyleBackColor = True + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator1, Me.ToolStripBtSendTo, Me.ToolStripSeparator2, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(944, 25) + Me.ToolStrip1.TabIndex = 20 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtNew + ' + Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtNew.Image = Global.VECTO.My.Resources.Resources.blue_document_icon + Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtNew.Name = "ToolStripBtNew" + Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtNew.Text = "New" + Me.ToolStripBtNew.ToolTipText = "New" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "Open" + Me.ToolStripBtOpen.ToolTipText = "Open..." + ' + 'ToolStripBtSave + ' + Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSave.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_icon + Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSave.Name = "ToolStripBtSave" + Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSave.Text = "Save" + Me.ToolStripBtSave.ToolTipText = "Save" + ' + 'ToolStripBtSaveAs + ' + Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSaveAs.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_as_icon + Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSaveAs.Text = "Save As" + Me.ToolStripBtSaveAs.ToolTipText = "Save As..." + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripBtSendTo + ' + Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSendTo.Image = Global.VECTO.My.Resources.Resources.export_icon + Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSendTo.Text = "Send to Job List" + Me.ToolStripBtSendTo.ToolTipText = "Send to Job List" + ' + 'ToolStripSeparator2 + ' + Me.ToolStripSeparator2.Name = "ToolStripSeparator2" + Me.ToolStripSeparator2.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Help" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_VECTO + Me.PictureBox1.Location = New System.Drawing.Point(12, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(920, 40) + Me.PictureBox1.TabIndex = 21 + Me.PictureBox1.TabStop = False + ' + 'CbEngOnly + ' + Me.CbEngOnly.AutoSize = True + Me.CbEngOnly.Location = New System.Drawing.Point(17, 84) + Me.CbEngOnly.Name = "CbEngOnly" + Me.CbEngOnly.Size = New System.Drawing.Size(113, 17) + Me.CbEngOnly.TabIndex = 35 + Me.CbEngOnly.Text = "Engine Only Mode" + Me.CbEngOnly.UseVisualStyleBackColor = True + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'PicVehicle + ' + Me.PicVehicle.BackColor = System.Drawing.Color.LightGray + Me.PicVehicle.Location = New System.Drawing.Point(542, 122) + Me.PicVehicle.Name = "PicVehicle" + Me.PicVehicle.Size = New System.Drawing.Size(300, 88) + Me.PicVehicle.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PicVehicle.TabIndex = 36 + Me.PicVehicle.TabStop = False + ' + 'PicBox + ' + Me.PicBox.BackColor = System.Drawing.Color.LightGray + Me.PicBox.Location = New System.Drawing.Point(542, 268) + Me.PicBox.Name = "PicBox" + Me.PicBox.Size = New System.Drawing.Size(390, 327) + Me.PicBox.TabIndex = 36 + Me.PicBox.TabStop = False + ' + 'TbEngTxt + ' + Me.TbEngTxt.Location = New System.Drawing.Point(542, 216) + Me.TbEngTxt.Name = "TbEngTxt" + Me.TbEngTxt.ReadOnly = True + Me.TbEngTxt.Size = New System.Drawing.Size(390, 20) + Me.TbEngTxt.TabIndex = 37 + ' + 'TbVehCat + ' + Me.TbVehCat.Location = New System.Drawing.Point(848, 126) + Me.TbVehCat.Name = "TbVehCat" + Me.TbVehCat.ReadOnly = True + Me.TbVehCat.Size = New System.Drawing.Size(87, 20) + Me.TbVehCat.TabIndex = 37 + ' + 'TbAxleConf + ' + Me.TbAxleConf.Location = New System.Drawing.Point(904, 155) + Me.TbAxleConf.Name = "TbAxleConf" + Me.TbAxleConf.ReadOnly = True + Me.TbAxleConf.Size = New System.Drawing.Size(31, 20) + Me.TbAxleConf.TabIndex = 37 + ' + 'TbHVCclass + ' + Me.TbHVCclass.Location = New System.Drawing.Point(848, 184) + Me.TbHVCclass.Name = "TbHVCclass" + Me.TbHVCclass.ReadOnly = True + Me.TbHVCclass.Size = New System.Drawing.Size(87, 20) + Me.TbHVCclass.TabIndex = 37 + ' + 'TbGbxTxt + ' + Me.TbGbxTxt.Location = New System.Drawing.Point(542, 242) + Me.TbGbxTxt.Name = "TbGbxTxt" + Me.TbGbxTxt.ReadOnly = True + Me.TbGbxTxt.Size = New System.Drawing.Size(390, 20) + Me.TbGbxTxt.TabIndex = 37 + ' + 'TbMass + ' + Me.TbMass.Location = New System.Drawing.Point(848, 155) + Me.TbMass.Name = "TbMass" + Me.TbMass.ReadOnly = True + Me.TbMass.Size = New System.Drawing.Size(50, 20) + Me.TbMass.TabIndex = 37 + ' + 'F_VECTO + ' + Me.AcceptButton = Me.ButOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButCancel + Me.ClientSize = New System.Drawing.Size(944, 649) + Me.Controls.Add(Me.TbHVCclass) + Me.Controls.Add(Me.TbMass) + Me.Controls.Add(Me.TbAxleConf) + Me.Controls.Add(Me.TbVehCat) + Me.Controls.Add(Me.TbGbxTxt) + Me.Controls.Add(Me.TbEngTxt) + Me.Controls.Add(Me.PicBox) + Me.Controls.Add(Me.PicVehicle) + Me.Controls.Add(Me.CbEngOnly) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.ButCancel) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.ButOK) + Me.Controls.Add(Me.StatusStrip1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "F_VECTO" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Job Editor" + Me.TabPgGen.ResumeLayout(False) + Me.TabPgGen.PerformLayout() + Me.GrCycles.ResumeLayout(False) + Me.GrCycles.PerformLayout() + Me.GrAux.ResumeLayout(False) + Me.GrAux.PerformLayout() + Me.TabControl1.ResumeLayout(False) + Me.TabPgDriver.ResumeLayout(False) + Me.GrVACC.ResumeLayout(False) + Me.GrVACC.PerformLayout() + Me.GrLAC.ResumeLayout(False) + Me.GrLAC.PerformLayout() + Me.PnLookAhead.ResumeLayout(False) + Me.PnLookAhead.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.PnEcoRoll.ResumeLayout(False) + Me.PnEcoRoll.PerformLayout() + Me.GrStartStop.ResumeLayout(False) + Me.GrStartStop.PerformLayout() + Me.PnStartStop.ResumeLayout(False) + Me.PnStartStop.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.CmOpenFile.ResumeLayout(False) + CType(Me.PicVehicle, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TabPgGen As System.Windows.Forms.TabPage + Friend WithEvents TabControl1 As System.Windows.Forms.TabControl + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents ButtonVEH As System.Windows.Forms.Button + Friend WithEvents ButtonMAP As System.Windows.Forms.Button + Friend WithEvents ButtonGBX As System.Windows.Forms.Button + Friend WithEvents ButOpenVEH As System.Windows.Forms.Button + Friend WithEvents ButOpenGBX As System.Windows.Forms.Button + Friend WithEvents ButOpenENG As System.Windows.Forms.Button + Friend WithEvents ToolStripStatusLabelGEN As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents ButOK As System.Windows.Forms.Button + Friend WithEvents TbGBX As System.Windows.Forms.TextBox + Friend WithEvents TbENG As System.Windows.Forms.TextBox + Friend WithEvents TbVEH As System.Windows.Forms.TextBox + Friend WithEvents ButCancel As System.Windows.Forms.Button + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtNew As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSave As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSaveAs As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSendTo As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents GrAux As System.Windows.Forms.GroupBox + Friend WithEvents LvAux As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader + Friend WithEvents ButAuxRem As System.Windows.Forms.Button + Friend WithEvents ButAuxAdd As System.Windows.Forms.Button + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents TabPgDriver As System.Windows.Forms.TabPage + Friend WithEvents BtDesMaxBr As System.Windows.Forms.Button + Friend WithEvents TbDesMaxFile As System.Windows.Forms.TextBox + Friend WithEvents GrCycles As System.Windows.Forms.GroupBox + Friend WithEvents LvCycles As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents BtDRIrem As System.Windows.Forms.Button + Friend WithEvents BtDRIadd As System.Windows.Forms.Button + Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents CbEngOnly As System.Windows.Forms.CheckBox + Friend WithEvents BtAccOpen As System.Windows.Forms.Button + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ChBStartStop As System.Windows.Forms.CheckBox + Friend WithEvents GrStartStop As System.Windows.Forms.GroupBox + Friend WithEvents TbSSspeed As System.Windows.Forms.TextBox + Friend WithEvents TbSStime As System.Windows.Forms.TextBox + Friend WithEvents LabelSStime As System.Windows.Forms.Label + Friend WithEvents LabelSSspeed As System.Windows.Forms.Label + Friend WithEvents GrLAC As System.Windows.Forms.GroupBox + Friend WithEvents Label25 As System.Windows.Forms.Label + Friend WithEvents CbLookAhead As System.Windows.Forms.CheckBox + Friend WithEvents TbAlookahead As System.Windows.Forms.TextBox + Friend WithEvents Label24 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label21 As System.Windows.Forms.Label + Friend WithEvents Label20 As System.Windows.Forms.Label + Friend WithEvents Label14 As System.Windows.Forms.Label + Friend WithEvents TbVmin As System.Windows.Forms.TextBox + Friend WithEvents TbUnderSpeed As System.Windows.Forms.TextBox + Friend WithEvents TbOverspeed As System.Windows.Forms.TextBox + Friend WithEvents Label23 As System.Windows.Forms.Label + Friend WithEvents Label22 As System.Windows.Forms.Label + Friend WithEvents Label13 As System.Windows.Forms.Label + Friend WithEvents RdEcoRoll As System.Windows.Forms.RadioButton + Friend WithEvents RdOverspeed As System.Windows.Forms.RadioButton + Friend WithEvents RdOff As System.Windows.Forms.RadioButton + Friend WithEvents PnStartStop As System.Windows.Forms.Panel + Friend WithEvents Label27 As System.Windows.Forms.Label + Friend WithEvents Label26 As System.Windows.Forms.Label + Friend WithEvents PnLookAhead As System.Windows.Forms.Panel + Friend WithEvents Label29 As System.Windows.Forms.Label + Friend WithEvents TbVminLA As System.Windows.Forms.TextBox + Friend WithEvents Label28 As System.Windows.Forms.Label + Friend WithEvents Label31 As System.Windows.Forms.Label + Friend WithEvents Label30 As System.Windows.Forms.Label + Friend WithEvents TbSSdelay As System.Windows.Forms.TextBox + Friend WithEvents Label32 As System.Windows.Forms.Label + Friend WithEvents PnEcoRoll As System.Windows.Forms.Panel + Friend WithEvents PicVehicle As System.Windows.Forms.PictureBox + Friend WithEvents PicBox As System.Windows.Forms.PictureBox + Friend WithEvents TbEngTxt As System.Windows.Forms.TextBox + Friend WithEvents TbVehCat As System.Windows.Forms.TextBox + Friend WithEvents TbAxleConf As System.Windows.Forms.TextBox + Friend WithEvents TbHVCclass As System.Windows.Forms.TextBox + Friend WithEvents TbGbxTxt As System.Windows.Forms.TextBox + Friend WithEvents TbMass As System.Windows.Forms.TextBox + Friend WithEvents GrVACC As System.Windows.Forms.GroupBox +End Class diff --git a/VECTO/GUI/F_VECTO.resx b/VECTO/GUI/F_VECTO.resx new file mode 100644 index 0000000000000000000000000000000000000000..0bc9c5fae26c125e5c75c9b88d58d575b7f167ea --- /dev/null +++ b/VECTO/GUI/F_VECTO.resx @@ -0,0 +1,220 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>125, 17</value> + </metadata> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>242, 17</value> + </metadata> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>350, 15</value> + </metadata> + <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>49</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAJCAAAAEAIAAoEwAAFgAAACgAAAAkAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD9/f0C4OjbBv7+/gIAAAAAAAAAAAAAAAAAAAAAAAAAAP///8/////t////+/// + //3////9/////f///+7////B////Zv///wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gHW4NAQiKV2LfX38xD///8BAAAAAAAA + AAAAAAAAAAAAAP////8wMDD/EhIS/wQEBP8CAgL/ERER/z4+Pv+ZmZn//Pz8/////7////8KAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gudtI5FRHEmhMbUvS7+/v4CAAAAAAAAAAAAAAAAAAAAAP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/QEBA//X19f////+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Aezw6SZjiUubOGgZxI2pfFn9/fwPAAAAAAAAAAAAAAAAAAAAAP// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3t7e//////cAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+BrfJrT48ax7HN2cY71V+ + O63g59ws////AgAAAAAAAAAAAAAAAP////////////////39/f/f39//T09P/wAAAP8AAAD/AAAA/yMj + I//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAA////Av// + /yD///+w4ODg/wAAAP8AAAD/AAAA/wMDA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//v4C1N7NL0h0LLU2Zhf2NmYX/jZmF+htkFeM8vXwIP// + /wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8f/Pz8/wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4MmrKKUjVm + FtM2Zhb9NmYX/zZmF/k/bSHAwM+3OP7+/gQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D/////wAA + AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wLr7+cpX4ZFpTVmFfA2ZhX/NmYW/zZmFv42ZhfZh6N0ZPz9/BL+/v4BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ge0xqhCOmoZzDZnFfw2ZxX/NmYV/zZm + Ff81ZRf0T3kzsNvk1i3+/v4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA/wAA + AP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Afj6 + +Bl6mmV5NWYU4TZnFf42ZxX/NmcV/zZmFf82ZhX9NmYW0aG4k07+/v4KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/////wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+As/byDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeM + T5fv8+0k////AQAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJavhVQ0ZRPUNWYU/TVm + FP81ZhT/NmcV/zZnFf82ZxX/NmcV+z1sHcW8zLE8/v7+BQAAAAAAAAAA/////////////////////wAA + AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8C6O7lK1uDQao1ZRTyNWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmcV/jVmFN2CoG5t+/z6Ff// + /wEAAAAA/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/zVmFPVLdy6z1+DQL/7+/gIAAAAA/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+fcbdpdhfjRl + E+M1ZhT+NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf01ZhXTnLSNUf7+/gsAAAAA/////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gLN2cUxRHElujVmFPg1ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZn + Ff81ZhTuYohJn+zx6Sf///8B////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39/QL9/v0C/f79Av3+ + /QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79AgAAAAAAAAAAAAAAAAAAAAAAAAAA////Aubs + 4itZgT6rNGUT8zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX+NWYU4Xqa + ZYTU3s1D2eLTNdni0zXZ4tM12eLTNdni0zXZ4tQ12eLUNdni1DXa49Q12uPVNdni1DXa49Q12uPVNQAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+CK/CokY3ZxbONWYU/TVmFP81ZhT/NWYU/zVmFP80ZhP/NWYU/jVm + FP81ZhT/NWYU/zVmFP81ZhT/NmcV+DVmFOFEcibPRHEmykRxJ8pFcSjKRXIoykVyKcpGcyrKR3Qrykh0 + K8pJdSzKS3cuykh0K8pJdSzKS3cuygAAAAAAAAAAAAAAAAAAAAD//v8B9vj1HXSWXoM0ZRPlNWYU/jVm + FP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf42ZxX9NmYV/TZm + Fv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/QAAAAAAAAAAAAAAAAAA + AAD+//4CytbCMkJwJLs0ZRP4NWYU/zVmFP81ZhT/NWYU/zVmFPtHcynNoLeRhj9uINM1ZhT9NWYU/zVm + FP81ZhT/NWYU/zZnFf82ZxX/NmcV/zZmFv82Zhf/NmYX/zdnGP83Zxj/OGgZ/zppGv86ahv/O2sc/zpp + Gv86ahv/O2sc/wAAAAAAAAAAAAAAAAAAAAD9/v0Nj6p+VzRlE9U1ZhT9NWYU/zVmFP81ZhT/NWYU/jVl + FOtpjVGW4uneTV+GRac0ZRPxNWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zdn + F/83Zxj/OGgZ/zlpGv86ahv/O2sc/zlpGv86ahv/O2sc/wAAAAAAAAAAAAAAAP///gLj6t8rVn88rDRl + FPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5CqflU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlpGv86ahv/O2sc/zlpGv86ahv/O2sc/wAA + AAAAAAAAAAAAAP7+/giswJ9HN2cWzzVmFP01ZhT/NWYU/zVmFP81ZhT/NWYU/T1sHcnD0ro2/v7+BMLQ + uDc9bB3KNWYU/TVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp + Gv86ahv/Omob/zlpGv86ahv/Omob/wAAAAAAAAAA////AfX49B5ylFyGNGUT5jVmFP41ZhT/NWYU/zVm + FP81ZhT/NWYU9leAPLPp7uYu////A+nu5ixZgT6vNWYU9DVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZm + FP82ZhX/NmYX/zZmF/83Zxf/N2cY/zlpGv86ahv/Omob/zlpGv86ahv/Omob/wAAAAAAAAAA/v7+AsjV + vzFBbyK6NGUU9jVmFP01ZhT9NWYU/TVmFP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVm + FPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZmFf02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/Tho + Gf06aRr9Omob/QAAAAAAAAAA/f79A4+qfS42ZxWhNmcVyDZnFco2ZxXKNmcVyjZnFco2ZxXJOGgYo6/C + ojT+/v4FAAAAAP7+/gO6yq8wO2obojZnFck2ZxXKNmcVyjdnFso3aBbKN2gWyjdoFso3ZxfKN2cYyjhn + Gco4aBnKOWgayjpqG8o7axzKPGsdyjpqG8o7axzKPGsdygAAAAAAAAAA+vv6AcHQtwyxxKQqscSkNbHE + pDWxxKQ1scSkNbHEpDWxxKQ1tMaoKu7y7Az///4BAAAAAAAAAADz9vELtseqKrHEpDWxxKQ1scSkNbHE + pDWxxKU1scSlNbHEpTWxxKU1scSlNbHEpTWxxKY1ssSmNbLFpjWzxac1s8WnNbLFpjWzxac1s8WnNQAA + AAAAAAAAAAAAAAAAAAD///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAA + AAAAAAAA////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av// + /wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAAP// + 8A/wAAAA///wA/AAAAD/+/AB8AAAAP/z8AHwAAAA//HwAfAAAAD/8f8B8AAAAP/g/4HwAAAA/+D/gfAA + AAD/wP+B8AAAAP/Af4HwAAAA/8B/gfAAAAD/gD+B8AAAAP+APAHwAAAA/wA8AfAAAAD/ABwB8AAAAP8A + HAHwAAAA/gAMAfAAAAD+AA//8AAAAPwAB//wAAAA/AAAABAAAAD4AAAAEAAAAPgAAAAQAAAA+AQAABAA + AADwDgAAEAAAAPAOAAAQAAAA4A4AABAAAADgHwAAEAAAAOAfAAAQAAAA//////AAAAD/////8AAAAP// + ///wAAAA +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_VECTO.vb b/VECTO/GUI/F_VECTO.vb new file mode 100644 index 0000000000000000000000000000000000000000..aff9881192e9ce0908261784f4c0e40208592c68 --- /dev/null +++ b/VECTO/GUI/F_VECTO.vb @@ -0,0 +1,1353 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports System.Collections.Generic + +''' <summary> +''' Job Editor. Create/Edit VECTO job files (.vecto) +''' </summary> +''' <remarks></remarks> +Public Class F_VECTO + + Private VECTOfile As String + Private Changed As Boolean = False + Private pgDriver As TabPage + Private pgDriverON As Boolean = True + + Private AuxDlog As F_VEH_AuxDlog + Private EStechs As New List(Of String) + + 'TB:29/9/14 - New Fields associated with HVAC,PNeumatics as Electrical Systems ********************* + Public ConsumerListES As List(Of VectoAuxiliaries.Electrics.ElectricalConsumer) = New List(Of VectoAuxiliaries.Electrics.ElectricalConsumer)() + Public PulleyGearEfficiencyES As Single + Public PulleyGearRatioES As Single + + Public ConsumerListPS As List(Of VectoAuxiliaries.Pneumatics.PneumaticConsumer) = New List(Of VectoAuxiliaries.Pneumatics.PneumaticConsumer)() + Public PulleyGearEfficiencyPS As Single + Public PulleyGearRatioPS As Single + + Public HVACMapInputs As Dictionary(Of String, Single) = New Dictionary(Of String, Single)() + Public PulleyGearEfficiencyHVAC As Single + Public PulleyGearRatioHVAC As Single + + '************************************************************************************************** + + 'Initialise form + Private Sub F02_GEN_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Dim x As Int16 + + AuxDlog = New F_VEH_AuxDlog + + pgDriver = Me.TabPgDriver + + For x = 0 To Me.TabControl1.TabCount - 1 + Me.TabControl1.TabPages(x).Show() + Next + + Me.LvAux.Columns(2).Width = -2 + + 'Declaration Mode + If Cfg.DeclMode Then + Me.LvAux.Columns(2).Text = "Technology" + Else + Me.LvAux.Columns(2).Text = "Input File" + End If + + Me.CbEngOnly.Enabled = Not Cfg.DeclMode + Me.GrCycles.Enabled = Not Cfg.DeclMode + Me.GrVACC.Enabled = Not Cfg.DeclMode + Me.PnStartStop.Enabled = Not Cfg.DeclMode + Me.RdOff.Enabled = Not Cfg.DeclMode + Me.GrLAC.Enabled = Not Cfg.DeclMode + Me.ButAuxAdd.Enabled = Not Cfg.DeclMode + Me.ButAuxRem.Enabled = Not Cfg.DeclMode + 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 + If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then + e.Cancel = ChangeCheckCancel() + End If + End Sub + + 'Set generic values for Declaration mode + Private Sub DeclInit() + Dim LV0 As ListViewItem + + If Not Cfg.DeclMode Then Exit Sub + + Me.LvCycles.Items.Clear() + Me.CbEngOnly.Checked = False + Me.TbDesMaxFile.Text = "" + If Not Me.RdEcoRoll.Checked Then Me.RdOverspeed.Checked = True + Me.CbLookAhead.Checked = True + + Me.TbSSspeed.Text = cDeclaration.SSspeed + Me.TbSStime.Text = cDeclaration.SStime + Me.TbSSdelay.Text = cDeclaration.SSdelay + Me.TbAlookahead.Text = cDeclaration.LACa + Me.TbVminLA.Text = cDeclaration.LACvmin + + Me.TbOverspeed.Text = cDeclaration.Overspeed + Me.TbUnderSpeed.Text = cDeclaration.Underspeed + Me.TbVmin.Text = cDeclaration.ECvmin + + + 'TB 29/9/14 - Note on existing code. + 'This sets Up Default Values for Aux Type is exactly the right numbers of them and their ID's are not in the list. these dont seem to need to be added by the user I guess. + 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) + LV0.SubItems.Add("Fan") + If Declaration.AuxTechs(tAux.Fan).Count > 1 Then + LV0.SubItems.Add("") + Else + LV0.SubItems.Add(Declaration.AuxTechs(tAux.Fan)(0)) + End If + Me.LvAux.Items.Add(LV0) + + LV0 = New ListViewItem(sKey.AUX.SteerPump) + LV0.SubItems.Add("Steering pump") + If Declaration.AuxTechs(tAux.SteerPump).Count > 1 Then + LV0.SubItems.Add("") + Else + LV0.SubItems.Add(Declaration.AuxTechs(tAux.SteerPump)(0)) + End If + Me.LvAux.Items.Add(LV0) + + LV0 = New ListViewItem(sKey.AUX.HVAC) + LV0.SubItems.Add("HVAC") + If Declaration.AuxTechs(tAux.HVAC).Count > 1 Then + LV0.SubItems.Add("") + Else + LV0.SubItems.Add(Declaration.AuxTechs(tAux.HVAC)(0)) + End If + Me.LvAux.Items.Add(LV0) + + LV0 = New ListViewItem(sKey.AUX.ElecSys) + LV0.SubItems.Add("Electric System") + If Declaration.AuxTechs(tAux.ElectricSys).Count > 1 Then + LV0.SubItems.Add("") + Else + LV0.SubItems.Add(Declaration.AuxTechs(tAux.ElectricSys)(0)) + End If + Me.LvAux.Items.Add(LV0) + + LV0 = New ListViewItem(sKey.AUX.PneumSys) + LV0.SubItems.Add("Pneumatic System") + If Declaration.AuxTechs(tAux.PneumSys).Count > 1 Then + LV0.SubItems.Add("") + Else + LV0.SubItems.Add(Declaration.AuxTechs(tAux.PneumSys)(0)) + End If + Me.LvAux.Items.Add(LV0) + + + + End If + + + End Sub + + + 'Show/Hide "Driver Assist" Tab + Private Sub SetDrivertab(ByVal OnOff As Boolean) + If OnOff Then + If Not pgDriverON Then + pgDriverON = True + Me.TabControl1.TabPages.Insert(1, pgDriver) + End If + Else + If pgDriverON Then + pgDriverON = False + Me.TabControl1.Controls.Remove(pgDriver) + End If + End If + End Sub + 'This is just a test comment. TODO: REMOVE IT + +#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)) + 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)) + 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)) + 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)) + End Sub + + Private Sub BtAccOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtAccOpen.Click + OpenFiles(fFileRepl(Me.TbDesMaxFile.Text, fPATH(VECTOfile))) + End Sub + +#End Region + +#Region "Open Buttons" + + 'Open Vehicle Editor + Private Sub ButOpenVEH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOpenVEH.Click + Dim f As String + f = fFileRepl(TbVEH.Text, fPATH(VECTOfile)) + + 'Thus Veh-file is returned + F_VEH.JobDir = fPATH(VECTOfile) + F_VEH.AutoSendTo = True + + If Not Trim(f) = "" Then + If Not IO.File.Exists(f) Then + MsgBox("File not found!") + Exit Sub + End If + End If + + If Not F_VEH.Visible Then + F_VEH.Show() + Else + If F_VEH.WindowState = FormWindowState.Minimized Then F_VEH.WindowState = FormWindowState.Normal + F_VEH.BringToFront() + End If + + If Not Trim(f) = "" Then F_VEH.openVEH(f) + + End Sub + + 'Open Engine Editor + Private Sub ButOpenENG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOpenENG.Click + Dim f As String + f = fFileRepl(TbENG.Text, fPATH(VECTOfile)) + + 'Thus Veh-file is returned + F_ENG.JobDir = fPATH(VECTOfile) + F_ENG.AutoSendTo = True + + If Not Trim(f) = "" Then + If Not IO.File.Exists(f) Then + MsgBox("File not found!") + Exit Sub + End If + End If + + If Not F_ENG.Visible Then + F_ENG.Show() + Else + If F_ENG.WindowState = FormWindowState.Minimized Then F_ENG.WindowState = FormWindowState.Normal + F_ENG.BringToFront() + End If + + If Not Trim(f) = "" Then F_ENG.openENG(f) + + End Sub + + 'Open Gearbox Editor + Private Sub ButOpenGBX_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOpenGBX.Click + Dim f As String + f = fFileRepl(TbGBX.Text, fPATH(VECTOfile)) + + 'Thus Veh-file is returned + F_GBX.JobDir = fPATH(VECTOfile) + F_GBX.AutoSendTo = True + + If Not Trim(f) = "" Then + If Not IO.File.Exists(f) Then + MsgBox("File not found!") + Exit Sub + End If + End If + + If Not F_GBX.Visible Then + F_GBX.Show() + Else + If F_GBX.WindowState = FormWindowState.Minimized Then F_GBX.WindowState = FormWindowState.Normal + F_GBX.BringToFront() + End If + + If Not Trim(f) = "" Then F_GBX.openGBX(f) + + End Sub + +#End Region + +#Region "Toolbar" + + 'New + Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click + VECTOnew() + End Sub + + 'Open + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + If fbVECTO.OpenDialog(VECTOfile, False, "vecto") Then VECTOload2Form(fbVECTO.Files(0)) + End Sub + + 'Save + Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + Save() + End Sub + + 'Save As + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + If fbVECTO.SaveDialog(VECTOfile) Then Call VECTOsave(fbVECTO.Files(0)) + End Sub + + 'Send to Job file list in main form + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + If ChangeCheckCancel() Then Exit Sub + If VECTOfile = "" Then + MsgBox("File not found!" & ChrW(10) & ChrW(10) & "Save file and try again.") + Else + F_MAINForm.AddToJobListView(VECTOfile) + 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\GUI\GUI_Calls\VECTO.html") Then + System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\VECTO.html") + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub + + +#End Region + + 'Save ("Save" or "Save As" when new file) + Private Function Save() As Boolean + If VECTOfile = "" Then + If fbVECTO.SaveDialog("") Then + VECTOfile = fbVECTO.Files(0) + Else + Return False + End If + End If + Return VECTOsave(VECTOfile) + End Function + + 'Open file + Public Sub VECTOload2Form(ByVal file As String) + Dim x As Int16 + Dim VEC0 As cVECTO + Dim AuxEntryKV As KeyValuePair(Of String, cAuxEntry) + Dim LV0 As ListViewItem + Dim sb As cSubPath + + If ChangeCheckCancel() Then Exit Sub + + VECTOnew() + + 'Read GEN + VEC0 = New cVECTO + VEC0.FilePath = file + Try + If Not VEC0.ReadFile() Then + VEC0 = Nothing + MsgBox("Failed to load " & fFILE(file, True) & "!") + Exit Sub + End If + Catch ex As Exception + MsgBox("Failed to load " & fFILE(file, True) & "!") + Exit Sub + End Try + + If Cfg.DeclMode <> VEC0.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 + + + 'Update Form + + 'Files ----------------------------- + TbVEH.Text = VEC0.PathVEH(True) + TbENG.Text = VEC0.PathENG(True) + TbGBX.Text = VEC0.PathGBX(True) + + 'Start/Stop + Me.ChBStartStop.Checked = VEC0.StartStop + Me.TbSSspeed.Text = VEC0.StStV + Me.TbSStime.Text = VEC0.StStT + Me.TbSSdelay.Text = VEC0.StStDelay + + 'VACC + Me.TbDesMaxFile.Text = VEC0.DesMaxFile(True) + + + + + Me.LvAux.Items.Clear() + For Each AuxEntryKV In VEC0.AuxPaths + LV0 = New ListViewItem + LV0.SubItems(0).Text = AuxEntryKV.Key + LV0.SubItems.Add(AuxEntryKV.Value.Type) + If Cfg.DeclMode Then + LV0.SubItems.Add(AuxEntryKV.Value.TechStr) + + 'TB 29/9/2014 - TODO: Need to work out what to do about Declaration mode for the augmentations. + + Else + LV0.SubItems.Add(AuxEntryKV.Value.Path.OriginalPath) + + ' + 'TB 29/9/2014 - This is where we read the contents of the auxilaries and add them to the respective properties of this form's class. + + + + + End If + LvAux.Items.Add(LV0) + Next + + EStechs = VEC0.EStechs + + For Each sb In VEC0.CycleFiles + LV0 = New ListViewItem + LV0.Text = sb.OriginalPath + LvCycles.Items.Add(LV0) + Next + + Me.CbEngOnly.Checked = VEC0.EngOnly + + If VEC0.EcoRollOn Then + Me.RdEcoRoll.Checked = True + ElseIf VEC0.OverSpeedOn Then + Me.RdOverspeed.Checked = True + Else + Me.RdOff.Checked = True + End If + Me.TbOverspeed.Text = CStr(VEC0.OverSpeed) + Me.TbUnderSpeed.Text = CStr(VEC0.UnderSpeed) + Me.TbVmin.Text = CStr(VEC0.vMin) + Me.CbLookAhead.Checked = VEC0.LookAheadOn + Me.TbAlookahead.Text = CStr(VEC0.a_lookahead) + Me.TbVminLA.Text = CStr(VEC0.vMinLA) + + + '------------------------------------------------------------- + + DeclInit() + + + F_ENG.AutoSendTo = False + F_GBX.AutoSendTo = False + F_VEH.AutoSendTo = False + + + VECTOfile = file + + x = Len(file) + While Mid(file, x, 1) <> "\" And x > 0 + x = x - 1 + End While + Me.Text = Mid(file, x + 1, Len(file) - x) + Changed = False + Me.ToolStripStatusLabelGEN.Text = "" 'file & " opened." + + UpdatePic() + + '------------------------------------------------------------- + + End Sub + + 'Save file + Private Function VECTOsave(ByVal file As String) As Boolean + + Dim VEC0 As cVECTO + Dim AuxEntry As cAuxEntry + Dim LV0 As ListViewItem + Dim sb As cSubPath + + VEC0 = New cVECTO + VEC0.FilePath = file + + 'Files ------------------------------------------------- ----------------- + + VEC0.PathVEH = Me.TbVEH.Text + VEC0.PathENG = Me.TbENG.Text + + For Each LV0 In LvCycles.Items + sb = New cSubPath + sb.Init(fPATH(file), LV0.Text) + VEC0.CycleFiles.Add(sb) + Next + + VEC0.PathGBX = Me.TbGBX.Text + + + 'Start/Stop + VEC0.StartStop = Me.ChBStartStop.Checked + VEC0.StStV = CSng(fTextboxToNumString(Me.TbSSspeed.Text)) + VEC0.StStT = CSng(fTextboxToNumString(Me.TbSStime.Text)) + VEC0.StStDelay = CInt(fTextboxToNumString(Me.TbSSdelay.Text)) + + 'a_DesMax + VEC0.DesMaxFile = Me.TbDesMaxFile.Text + + 'TB 29/9/2014 - Here is where we assemble the cAuxEntry instances for addition + For Each LV0 In LvAux.Items + AuxEntry = New cAuxEntry + + If Cfg.DeclMode Then + AuxEntry.TechStr = LV0.SubItems(2).Text + + 'TB: 29/9/2014 - TODO: Need to know how to set Declaration Mode Values for this stuff here. + + + Else + AuxEntry.Path.Init(fPATH(file), LV0.SubItems(2).Text) + + 'Engineering Mode. + 'Detect which system we are currently addressing. + + Select Case LV0.SubItems(0).Text + + Case sKey.AUX.HVAC + AuxEntry.HVACMapInputs = Me.HVACMapInputs + AuxEntry.PulleyGearEfficiencyHVAC = Me.PulleyGearEfficiencyHVAC + AuxEntry.PulleyGearRatioHVAC = Me.PulleyGearRatioHVAC + + Case sKey.AUX.ElecSys + AuxEntry.ConsumerListES = Me.ConsumerListES + AuxEntry.PulleyGearEfficiencyES = Me.PulleyGearEfficiencyES + AuxEntry.PulleyGearRatioES = Me.PulleyGearRatioES + + Case sKey.AUX.PneumSys + AuxEntry.ConsumerListPS = Me.ConsumerListPS + AuxEntry.PulleyGearEfficiencyPS = Me.PulleyGearEfficiencyPS + AuxEntry.PulleyGearRatioPS = Me.PulleyGearRatioPS + + End Select + + + + End If + + AuxEntry.Type = LV0.SubItems(1).Text + VEC0.AuxPaths.Add(LV0.SubItems(0).Text, AuxEntry) + + + Next + + VEC0.EStechs = EStechs + + + VEC0.EngOnly = Me.CbEngOnly.Checked + + VEC0.EcoRollOn = RdEcoRoll.Checked + VEC0.OverSpeedOn = RdOverspeed.Checked + VEC0.OverSpeed = CSng(fTextboxToNumString(Me.TbOverspeed.Text)) + VEC0.UnderSpeed = CSng(fTextboxToNumString(Me.TbUnderSpeed.Text)) + VEC0.vMin = CSng(fTextboxToNumString(Me.TbVmin.Text)) + VEC0.LookAheadOn = Me.CbLookAhead.Checked + VEC0.a_lookahead = CSng(fTextboxToNumString(Me.TbAlookahead.Text)) + VEC0.vMinLA = CSng(fTextboxToNumString(Me.TbVminLA.Text)) + + + '------------------------------------------------------------ + + 'SAVE + If Not VEC0.SaveFile Then + MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) + Return False + End If + + VECTOfile = file + + file = fFILE(VECTOfile, True) + + Me.Text = file + + Me.ToolStripStatusLabelGEN.Text = "" + + F_MAINForm.AddToJobListView(VECTOfile) + + Changed = False + + Return True + + End Function + + 'New file + Public Sub VECTOnew() + + If ChangeCheckCancel() Then Exit Sub + + 'Files + Me.TbVEH.Text = "" + Me.TbENG.Text = "" + Me.LvCycles.Items.Clear() + Me.TbGBX.Text = "" + Me.TbDesMaxFile.Text = "" + + 'Start/Stop + Me.TbSSspeed.Text = "5" + Me.TbSStime.Text = "5" + Me.ChBStartStop.Checked = False + + Me.LvAux.Items.Clear() + + Me.CbEngOnly.Checked = False + + Me.RdOff.Checked = True + Me.CbLookAhead.Checked = True + Me.TbAlookahead.Text = "-0.5" + Me.TbOverspeed.Text = "" + Me.TbUnderSpeed.Text = "" + Me.TbVmin.Text = "" + Me.TbVminLA.Text = "50" + + '--------------------------------------------------- + + DeclInit() + + F_ENG.AutoSendTo = False + + VECTOfile = "" + Me.Text = "Job Editor" + Me.ToolStripStatusLabelGEN.Text = "" + Changed = False + UpdatePic() + + End Sub + + +#Region "Track changes" + +#Region "'Change' Events" + + 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 + UpdatePic() + Change() + End Sub + + Private Sub TextBoxFLD_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbGBX.TextChanged + UpdatePic() + Change() + End Sub + + Private Sub TbDesMaxFile_TextChanged_1(sender As System.Object, e As System.EventArgs) Handles TbDesMaxFile.TextChanged + Change() + End Sub + + + Private Sub TBSSspeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbSSspeed.TextChanged + Change() + End Sub + + Private Sub TBSStime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbSStime.TextChanged, TbSSdelay.TextChanged + Change() + End Sub + + Private Sub TbOverspeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbOverspeed.TextChanged + Change() + End Sub + + Private Sub TbUnderSpeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbUnderSpeed.TextChanged + Change() + End Sub + + Private Sub TbVmin_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbVmin.TextChanged, TbVminLA.TextChanged + Change() + End Sub + + Private Sub TbAlookahead_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbAlookahead.TextChanged + Change() + End Sub + + Private Sub LvCycles_AfterLabelEdit(sender As Object, e As System.Windows.Forms.LabelEditEventArgs) Handles LvCycles.AfterLabelEdit + Change() + End Sub + + +#End Region + + Private Sub Change() + If Not Changed Then + Me.ToolStripStatusLabelGEN.Text = "Unsaved changes in current file" + Changed = True + End If + End Sub + + ' "Save changes? "... Returns True if User aborts + Private Function ChangeCheckCancel() As Boolean + + If Changed Then + + Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel) + Case MsgBoxResult.Yes + Return Not Save() + Case MsgBoxResult.Cancel + Return True + Case Else 'MsgBoxResult.No + Changed = False + Return False + End Select + + Else + + Return False + + End If + + End Function + +#End Region + +#Region "Aux Listview" + + Private Sub ButAuxAdd_Click(sender As System.Object, e As System.EventArgs) Handles ButAuxAdd.Click + Dim LV0 As ListViewItem + Dim ID As String + + AuxDlog.ClearAllValues(True) + AuxDlog.VehPath = fPATH(VECTOfile) + + +lbDlog: + If AuxDlog.ShowDialog = Windows.Forms.DialogResult.OK Then + + ID = UCase(Trim(AuxDlog.TbID.Text)) + + For Each LV0 In LvAux.Items + If LV0.SubItems(0).Text = ID Then + MsgBox("ID '" & ID & "' already defined!", MsgBoxStyle.Critical) + AuxDlog.TbID.SelectAll() + AuxDlog.TbID.Focus() + GoTo lbDlog + End If + Next + + LV0 = New ListViewItem + LV0.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text)) + LV0.SubItems.Add(Trim(AuxDlog.CbType.Text)) + LV0.SubItems.Add(Trim(AuxDlog.TbPath.Text)) + + LvAux.Items.Add(LV0) + + If ID = sKey.AUX.ElecSys Then + EStechs.Clear() + For Each LV0 In AuxDlog.LVTech.CheckedItems + EStechs.Add(LV0.Text) + Next + End If + + Change() + + End If + + End Sub + + Private Sub ButAuxRem_Click(sender As System.Object, e As System.EventArgs) Handles ButAuxRem.Click + RemoveAuxItem() + End Sub + + Private Sub LvAux_DoubleClick(sender As Object, e As System.EventArgs) Handles LvAux.DoubleClick + EditAuxItem() + End Sub + + Private Sub LvAux_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvAux.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + If Not Cfg.DeclMode Then RemoveAuxItem() + Case Keys.Enter + EditAuxItem() + End Select + End Sub + + Private Sub EditAuxItem() + Dim SelItem As ListViewItem + Dim LV0 As ListViewItem + + If LvAux.SelectedItems.Count = 0 Then Exit Sub + + SelItem = LvAux.SelectedItems(0) + + AuxDlog.VehPath = fPATH(VECTOfile) + + AuxDlog.CbType.Text = SelItem.SubItems(1).Text + AuxDlog.TbID.Text = SelItem.SubItems(0).Text 'After Type-set! + + If Cfg.DeclMode Then + AuxDlog.CbTech.Text = SelItem.SubItems(2).Text + AuxDlog.TbPath.Text = "" + + If AuxDlog.TbID.Text = sKey.AUX.ElecSys Then + For Each LV0 In AuxDlog.LVTech.Items + If EStechs.Contains(LV0.Text) Then + LV0.Checked = True + Else + LV0.Checked = False + End If + Next + End If + + Else + AuxDlog.CbTech.SelectedIndex = -1 + AuxDlog.TbPath.Text = SelItem.SubItems(2).Text + End If + + If AuxDlog.ShowDialog = Windows.Forms.DialogResult.OK Then + +'Set New Systems Properties + + + Select Case AuxDlog.TbID.Text + + '**** ELECTRICS **** + Case sKey.AUX.ElecSys.ToString() + For Each item As KeyValuePair(Of String, Single) In AuxDlog.ListItems + ConsumerListES.Add(New VectoAuxiliaries.Electrics.ElectricalConsumer(item.Key, item.Value)) + Next + + PulleyGearEfficiencyES = CType(AuxDlog.txtPulleyGearEfficiency.Text, Single) + PulleyGearRatioES = CType(AuxDlog.txtPulleyGearRatio.Text, Single) + + '============================================================================================ + + '**** PNEUMATICS **** + Case sKey.AUX.PneumSys.ToString() + For Each item As KeyValuePair(Of String, Single) In AuxDlog.ListItems + ConsumerListPS.Add(New VectoAuxiliaries.Pneumatics.PneumaticConsumer(item.Key, item.Value)) + Next + '------Get Pully Values + PulleyGearEfficiencyPS = CType(AuxDlog.txtPulleyGearEfficiency.Text, Single) + PulleyGearRatioPS = CType(AuxDlog.txtPulleyGearRatio.Text, Single) + + '============================================================================================ + + '**** HVAC **** + Case sKey.AUX.HVAC.ToString() + + '----- Get list of MAP Inputs + For Each item As KeyValuePair(Of String, Single) In AuxDlog.ListItems + HVACMapInputs.Add(item.Key, item.Value) + Next + + '------Get Pully Values + PulleyGearEfficiencyHVAC = CType(AuxDlog.txtPulleyGearEfficiency.Text, Single) + PulleyGearRatioHVAC = CType(AuxDlog.txtPulleyGearRatio.Text, Single) + + '============================================================================================ + + End Select + + + + SelItem.SubItems(0).Text = UCase(Trim(AuxDlog.TbID.Text)) + SelItem.SubItems(1).Text = Trim(AuxDlog.CbType.Text) + + If Cfg.DeclMode Then + SelItem.SubItems(2).Text = Trim(AuxDlog.CbTech.Text) + Else + SelItem.SubItems(2).Text = Trim(AuxDlog.TbPath.Text) + End If + + If UCase(Trim(AuxDlog.TbID.Text)) = sKey.AUX.ElecSys Then + EStechs.Clear() + For Each LV0 In AuxDlog.LVTech.CheckedItems + EStechs.Add(LV0.Text) + Next + End If + + Change() + + End If + + End Sub + + Private Sub RemoveAuxItem() + Dim i As Integer + + If LvAux.SelectedItems.Count = 0 Then + If LvAux.Items.Count = 0 Then + Exit Sub + Else + LvAux.Items(LvAux.Items.Count - 1).Selected = True + End If + End If + + i = LvAux.SelectedItems(0).Index + + LvAux.SelectedItems(0).Remove() + + If LvAux.Items.Count > 0 Then + If i < LvAux.Items.Count Then + LvAux.Items(i).Selected = True + Else + LvAux.Items(LvAux.Items.Count - 1).Selected = True + End If + LvAux.Focus() + End If + + Change() + + End Sub + +#End Region + + 'OK (Save & Close) + Private Sub ButSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOK.Click + If Not Save() Then Exit Sub + Me.Close() + End Sub + + 'Cancel + Private Sub ButCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButCancel.Click + Me.Close() + End Sub + + + +#Region "Enable/Disable GUI controls" + + 'Engine only mode changed + Private Sub CbEngOnly_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CbEngOnly.CheckedChanged + CheckEngOnly() + Change() + End Sub + + Private Sub CheckEngOnly() + Dim OnOff As Boolean + + OnOff = Not CbEngOnly.Checked + + SetDrivertab(OnOff) + + ButOpenVEH.Enabled = OnOff + TbVEH.Enabled = OnOff + ButtonVEH.Enabled = OnOff + ButOpenGBX.Enabled = OnOff + 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 + 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 + 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 + Dim EcoR As Boolean + Dim Ovr As Boolean + + Change() + + EcoR = Me.RdEcoRoll.Checked + Ovr = Me.RdOverspeed.Checked + + Me.TbOverspeed.Enabled = Ovr Or EcoR + Me.Label13.Enabled = Ovr Or EcoR + Me.Label14.Enabled = Ovr Or EcoR + + Me.TbUnderSpeed.Enabled = EcoR + Me.Label22.Enabled = EcoR + Me.Label20.Enabled = EcoR + + Me.TbVmin.Enabled = Ovr Or EcoR + Me.Label23.Enabled = Ovr Or EcoR + Me.Label21.Enabled = Ovr Or EcoR + + End Sub + +#End Region + +Public Sub UpdatePic() + Dim VEH0 As New cVEH + Dim ENG0 As cENG + Dim GBX0 As cGBX + Dim FLD0 As cFLD + Dim Shiftpoly As cGBX.cShiftPolygon + Dim MAP0 As cMAP + Dim OkCount As Integer + Dim i As Integer + Dim pmax As Single + + Dim f As cFile_V3 = Nothing + Dim lM As List(Of Single) + Dim lup As List(Of Single) + Dim ldown As List(Of Single) + Dim line As String() = Nothing + + Dim s0 As cSegmentTableEntry = Nothing + Dim HDVclass As String + Dim m0 As tMission + + 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.TbHVCclass.Text = "" + Me.TbVehCat.Text = "" + Me.TbMass.Text = "" + Me.TbAxleConf.Text = "" + Me.TbEngTxt.Text = "" + Me.TbGbxTxt.Text = "" + Me.PicVehicle.Image = Nothing + Me.PicBox.Image = Nothing + + + VEH0.FilePath = fFileRepl(Me.TbVEH.Text, fPATH(VECTOfile)) + If VEH0.ReadFile(False) Then + + If Declaration.SegmentTable.SetRef(s0, VEH0.VehCat, VEH0.AxleConf, VEH0.MassMax) Then + HDVclass = s0.HDVclass + + If Cfg.DeclMode Then + Me.LvCycles.Items.Clear() + For Each m0 In s0.Missions + Me.LvCycles.Items.Add(Declaration.Missions(m0).NameStr) + Next + End If + + Else + HDVclass = "-" + End If + + Me.PicVehicle.Image = Image.FromFile(Declaration.ConvPicPath(HDVclass, False)) + + Me.TbHVCclass.Text = "HDV Class " & HDVclass + Me.TbVehCat.Text = ConvVehCat(VEH0.VehCat, True) + Me.TbMass.Text = VEH0.MassMax & " t" + Me.TbAxleConf.Text = ConvAxleConf(VEH0.AxleConf) + + End If + + + OkCount = 0 + + ENG0 = New cENG + ENG0.FilePath = fFileRepl(Me.TbENG.Text, fPATH(VECTOfile)) + + '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 + + If ENG0.ReadFile(False) Then + + FLD0 = New cFLD + + For i = 0 To ENG0.fFLD.Count - 1 + + FLD0.FilePath = ENG0.fFLD(i).FullPath + If FLD0.ReadFile(False) Then + + 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) + + 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) + + If Cfg.DeclMode Then + FLD0.Init(ENG0.Nidle) + + Shiftpoly = New cGBX.cShiftPolygon("", 0) + Shiftpoly.SetGenericShiftPoly(FLD0, ENG0.Nidle) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(Shiftpoly.gs_nUup, Shiftpoly.gs_TqUp) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Upshift curve" + MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(Shiftpoly.gs_nUdown, Shiftpoly.gs_TqDown) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Downshift curve" + MyChart.Series.Add(s) + + End If + + OkCount += 1 + + pmax = FLD0.Pfull(FLD0.fnUrated) + + + End If + + + + Next + + Me.TbEngTxt.Text = (ENG0.Displ / 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW " & ENG0.ModelName + + + MAP0 = New cMAP + MAP0.FilePath = ENG0.PathMAP + + If MAP0.ReadFile(False) 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) + + OkCount += 1 + + End If + + End If + + GBX0 = New cGBX + GBX0.FilePath = fFileRepl(Me.TbGBX.Text, fPATH(VECTOfile)) + + If GBX0.ReadFile(False) Then + + Me.TbGbxTxt.Text = GBX0.GearCount & "-Speed " & GearboxConv(GBX0.gs_Type) & " " & GBX0.ModelName + + If Not Cfg.DeclMode Then + f = New cFile_V3 + For i = 0 To GBX0.GearCount - 1 + + lM = New List(Of Single) + lup = New List(Of Single) + ldown = New List(Of Single) + + If f.OpenRead(GBX0.gsFile(i)) Then + + f.ReadLine() + + Try + + Do While Not f.EndOfFile + line = f.ReadLine + lM.Add(CSng(line(0))) + lup.Add(CSng(line(1))) + ldown.Add(CSng(line(2))) + Loop + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(lup, lM) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Upshift curve" + MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(ldown, lM) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkRed + s.Name = "Downshift curve" + MyChart.Series.Add(s) + + OkCount += 1 + + f.Close() + + Catch ex As Exception + f.Close() + End Try + + End If + + Next + + End If + + End If + + If OkCount > 0 Then + + a.Name = "main" + + 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 + + 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 + + a.AxisX.Minimum = 300 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 + + a.BackColor = Color.GhostWhite + + MyChart.ChartAreas.Add(a) + + 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)) + + Me.PicBox.Image = img + + + End If + + End Sub + +#Region "Open File Context Menu" + + Private CmFiles As String() + + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + 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 + 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 + +#End Region + +#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))) + End Sub + + Private Sub LvCycles_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvCycles.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + RemoveCycle() + Case Keys.Enter + If Me.LvCycles.SelectedItems.Count > 0 Then Me.LvCycles.SelectedItems(0).BeginEdit() + End Select + End Sub + + + Private Sub BtDRIadd_Click(sender As System.Object, e As System.EventArgs) Handles BtDRIadd.Click + Dim str As String + Dim GenDir As String + + GenDir = fPATH(VECTOfile) + + If fbDRI.OpenDialog("", True) Then + + For Each str In fbDRI.Files + Me.LvCycles.Items.Add(fFileWoDir(str, GenDir)) + Next + + Change() + + End If + + End Sub + + Private Sub BtDRIrem_Click(sender As System.Object, e As System.EventArgs) Handles BtDRIrem.Click + RemoveCycle() + End Sub + + Private Sub RemoveCycle() + Dim i As Integer + + If LvCycles.SelectedItems.Count = 0 Then + If LvCycles.Items.Count = 0 Then + Exit Sub + Else + LvCycles.Items(LvCycles.Items.Count - 1).Selected = True + End If + End If + + i = LvCycles.SelectedItems(0).Index + + LvCycles.SelectedItems(0).Remove() + + If LvCycles.Items.Count > 0 Then + If i < LvCycles.Items.Count Then + LvCycles.Items(i).Selected = True + Else + LvCycles.Items(LvCycles.Items.Count - 1).Selected = True + End If + + LvCycles.Focus() + End If + + Change() + + End Sub + +#End Region + + +End Class diff --git a/VECTO/GUI/F_VEH.Designer.vb b/VECTO/GUI/F_VEH.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..97180d90f21f7be19aae6cf6a74beeeea2403c37 --- /dev/null +++ b/VECTO/GUI/F_VEH.Designer.vb @@ -0,0 +1,1065 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_VEH + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(F_VEH)) + Me.Label1 = New System.Windows.Forms.Label() + Me.TbMass = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.TbLoad = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.TBcdTrTr = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.TBAquersTrTr = New System.Windows.Forms.TextBox() + Me.Label13 = New System.Windows.Forms.Label() + Me.TBrdyn = New System.Windows.Forms.TextBox() + Me.ButOK = New System.Windows.Forms.Button() + Me.ButCancel = New System.Windows.Forms.Button() + Me.Label14 = New System.Windows.Forms.Label() + Me.Label31 = New System.Windows.Forms.Label() + Me.Label35 = New System.Windows.Forms.Label() + Me.Label37 = New System.Windows.Forms.Label() + Me.Label38 = New System.Windows.Forms.Label() + Me.CbCdMode = New System.Windows.Forms.ComboBox() + Me.TbCdFile = New System.Windows.Forms.TextBox() + Me.BtCdFileBrowse = New System.Windows.Forms.Button() + Me.GroupBox6 = New System.Windows.Forms.GroupBox() + Me.BtCdFileOpen = New System.Windows.Forms.Button() + Me.LbCdMode = New System.Windows.Forms.Label() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.ToolStripBtNew = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtOpen = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSave = New System.Windows.Forms.ToolStripButton() + Me.ToolStripBtSaveAs = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripBtSendTo = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton() + Me.GroupBox7 = New System.Windows.Forms.GroupBox() + Me.PnRt = New System.Windows.Forms.Panel() + Me.Label45 = New System.Windows.Forms.Label() + Me.LbRtRatio = New System.Windows.Forms.Label() + Me.TbRtRatio = New System.Windows.Forms.TextBox() + Me.BtRtBrowse = New System.Windows.Forms.Button() + Me.TbRtPath = New System.Windows.Forms.TextBox() + Me.CbRtType = New System.Windows.Forms.ComboBox() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label46 = New System.Windows.Forms.Label() + Me.Label50 = New System.Windows.Forms.Label() + Me.TbMassExtra = New System.Windows.Forms.TextBox() + Me.GroupBox8 = New System.Windows.Forms.GroupBox() + Me.PnWheelDiam = New System.Windows.Forms.Panel() + Me.CbRim = New System.Windows.Forms.ComboBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.ButAxlRem = New System.Windows.Forms.Button() + Me.LvRRC = New System.Windows.Forms.ListView() + Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ButAxlAdd = New System.Windows.Forms.Button() + Me.CbAxleConfig = New System.Windows.Forms.ComboBox() + Me.CbCat = New System.Windows.Forms.ComboBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.TbMassMass = New System.Windows.Forms.TextBox() + Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() + Me.LbStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.TbHDVclass = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.TbLoadingMax = New System.Windows.Forms.TextBox() + Me.Label22 = New System.Windows.Forms.Label() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.PnLoad = New System.Windows.Forms.Panel() + Me.GrAirRes = New System.Windows.Forms.GroupBox() + Me.PnCdATrTr = New System.Windows.Forms.Panel() + Me.LbCdATr = New System.Windows.Forms.Label() + Me.PnCdARig = New System.Windows.Forms.Panel() + Me.LbCdARig = New System.Windows.Forms.Label() + Me.TBcwRig = New System.Windows.Forms.TextBox() + Me.TBAquersRig = New System.Windows.Forms.TextBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.CmOpenFile = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PnAll = New System.Windows.Forms.Panel() + Me.PicVehicle = New System.Windows.Forms.PictureBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.GroupBox6.SuspendLayout() + Me.ToolStrip1.SuspendLayout() + Me.GroupBox7.SuspendLayout() + Me.PnRt.SuspendLayout() + Me.GroupBox8.SuspendLayout() + Me.PnWheelDiam.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.PnLoad.SuspendLayout() + Me.GrAirRes.SuspendLayout() + Me.PnCdATrTr.SuspendLayout() + Me.PnCdARig.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.CmOpenFile.SuspendLayout() + Me.PnAll.SuspendLayout() + CType(Me.PicVehicle, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(62, 22) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(104, 13) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Curb Weight Vehicle" + ' + 'TbMass + ' + Me.TbMass.Location = New System.Drawing.Point(172, 19) + Me.TbMass.Name = "TbMass" + Me.TbMass.Size = New System.Drawing.Size(57, 20) + Me.TbMass.TabIndex = 0 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(115, 31) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(45, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Loading" + ' + 'TbLoad + ' + Me.TbLoad.Location = New System.Drawing.Point(166, 28) + Me.TbLoad.Name = "TbLoad" + Me.TbLoad.Size = New System.Drawing.Size(57, 20) + Me.TbLoad.TabIndex = 2 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(37, 55) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(58, 13) + Me.Label3.TabIndex = 8 + Me.Label3.Text = "Drag Coef." + ' + 'TBcdTrTr + ' + Me.TBcdTrTr.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TBcdTrTr.Location = New System.Drawing.Point(2, 24) + Me.TBcdTrTr.Name = "TBcdTrTr" + Me.TBcdTrTr.Size = New System.Drawing.Size(57, 20) + Me.TBcdTrTr.TabIndex = 0 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(12, 81) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(83, 13) + Me.Label4.TabIndex = 10 + Me.Label4.Text = "Cross Sec. Area" + ' + 'TBAquersTrTr + ' + Me.TBAquersTrTr.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TBAquersTrTr.Location = New System.Drawing.Point(2, 50) + Me.TBAquersTrTr.Name = "TBAquersTrTr" + Me.TBAquersTrTr.Size = New System.Drawing.Size(57, 20) + Me.TBAquersTrTr.TabIndex = 1 + ' + 'Label13 + ' + Me.Label13.AutoSize = True + Me.Label13.Location = New System.Drawing.Point(7, 7) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(96, 13) + Me.Label13.TabIndex = 6 + Me.Label13.Text = "Dynamic tire radius" + ' + 'TBrdyn + ' + Me.TBrdyn.Location = New System.Drawing.Point(109, 4) + Me.TBrdyn.Name = "TBrdyn" + Me.TBrdyn.Size = New System.Drawing.Size(57, 20) + Me.TBrdyn.TabIndex = 5 + ' + 'ButOK + ' + Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButOK.Location = New System.Drawing.Point(394, 693) + Me.ButOK.Name = "ButOK" + Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.TabIndex = 9 + Me.ButOK.Text = "Save" + Me.ButOK.UseVisualStyleBackColor = True + ' + 'ButCancel + ' + Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButCancel.Location = New System.Drawing.Point(475, 693) + Me.ButCancel.Name = "ButCancel" + Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.TabIndex = 10 + Me.ButCancel.Text = "Cancel" + Me.ButCancel.UseVisualStyleBackColor = True + ' + 'Label14 + ' + Me.Label14.AutoSize = True + Me.Label14.Location = New System.Drawing.Point(235, 22) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(25, 13) + Me.Label14.TabIndex = 24 + Me.Label14.Text = "[kg]" + ' + 'Label31 + ' + Me.Label31.AutoSize = True + Me.Label31.Location = New System.Drawing.Point(229, 31) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(25, 13) + Me.Label31.TabIndex = 24 + Me.Label31.Text = "[kg]" + ' + 'Label35 + ' + Me.Label35.AutoSize = True + Me.Label35.Location = New System.Drawing.Point(172, 7) + Me.Label35.Name = "Label35" + Me.Label35.Size = New System.Drawing.Size(29, 13) + Me.Label35.TabIndex = 24 + Me.Label35.Text = "[mm]" + ' + 'Label37 + ' + Me.Label37.AutoSize = True + Me.Label37.Location = New System.Drawing.Point(230, 53) + Me.Label37.Name = "Label37" + Me.Label37.Size = New System.Drawing.Size(16, 13) + Me.Label37.TabIndex = 24 + Me.Label37.Text = "[-]" + ' + 'Label38 + ' + Me.Label38.AutoSize = True + Me.Label38.Location = New System.Drawing.Point(230, 79) + Me.Label38.Name = "Label38" + Me.Label38.Size = New System.Drawing.Size(24, 13) + Me.Label38.TabIndex = 24 + Me.Label38.Text = "[m²]" + ' + 'CbCdMode + ' + Me.CbCdMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbCdMode.FormattingEnabled = True + Me.CbCdMode.Items.AddRange(New Object() {"No Correction", "Speed dependent", "Vair & Beta Input"}) + Me.CbCdMode.Location = New System.Drawing.Point(6, 19) + Me.CbCdMode.Name = "CbCdMode" + Me.CbCdMode.Size = New System.Drawing.Size(112, 21) + Me.CbCdMode.TabIndex = 0 + ' + 'TbCdFile + ' + Me.TbCdFile.Enabled = False + Me.TbCdFile.Location = New System.Drawing.Point(6, 46) + Me.TbCdFile.Name = "TbCdFile" + Me.TbCdFile.Size = New System.Drawing.Size(459, 20) + Me.TbCdFile.TabIndex = 1 + ' + 'BtCdFileBrowse + ' + Me.BtCdFileBrowse.Enabled = False + Me.BtCdFileBrowse.Location = New System.Drawing.Point(471, 44) + Me.BtCdFileBrowse.Name = "BtCdFileBrowse" + Me.BtCdFileBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtCdFileBrowse.TabIndex = 2 + Me.BtCdFileBrowse.Text = "..." + Me.BtCdFileBrowse.UseVisualStyleBackColor = True + ' + 'GroupBox6 + ' + Me.GroupBox6.Controls.Add(Me.BtCdFileOpen) + Me.GroupBox6.Controls.Add(Me.LbCdMode) + Me.GroupBox6.Controls.Add(Me.CbCdMode) + Me.GroupBox6.Controls.Add(Me.BtCdFileBrowse) + Me.GroupBox6.Controls.Add(Me.TbCdFile) + Me.GroupBox6.Location = New System.Drawing.Point(6, 432) + Me.GroupBox6.Name = "GroupBox6" + Me.GroupBox6.Size = New System.Drawing.Size(538, 74) + Me.GroupBox6.TabIndex = 5 + Me.GroupBox6.TabStop = False + Me.GroupBox6.Text = "Cross Wind Correction" + ' + 'BtCdFileOpen + ' + Me.BtCdFileOpen.Enabled = False + Me.BtCdFileOpen.Image = Global.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtCdFileOpen.Location = New System.Drawing.Point(509, 44) + Me.BtCdFileOpen.Name = "BtCdFileOpen" + Me.BtCdFileOpen.Size = New System.Drawing.Size(23, 23) + Me.BtCdFileOpen.TabIndex = 41 + Me.BtCdFileOpen.TabStop = False + Me.BtCdFileOpen.UseVisualStyleBackColor = True + ' + 'LbCdMode + ' + Me.LbCdMode.AutoSize = True + Me.LbCdMode.Location = New System.Drawing.Point(124, 22) + Me.LbCdMode.Name = "LbCdMode" + Me.LbCdMode.Size = New System.Drawing.Size(59, 13) + Me.LbCdMode.TabIndex = 28 + Me.LbCdMode.Text = "LbCdMode" + ' + 'ToolStrip1 + ' + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1}) + Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(562, 25) + Me.ToolStrip1.TabIndex = 29 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'ToolStripBtNew + ' + Me.ToolStripBtNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtNew.Image = Global.VECTO.My.Resources.Resources.blue_document_icon + Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtNew.Name = "ToolStripBtNew" + Me.ToolStripBtNew.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtNew.Text = "ToolStripButton1" + Me.ToolStripBtNew.ToolTipText = "New" + ' + 'ToolStripBtOpen + ' + Me.ToolStripBtOpen.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtOpen.Image = Global.VECTO.My.Resources.Resources.Open_icon + Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtOpen.Name = "ToolStripBtOpen" + Me.ToolStripBtOpen.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtOpen.Text = "ToolStripButton1" + Me.ToolStripBtOpen.ToolTipText = "Open..." + ' + 'ToolStripBtSave + ' + Me.ToolStripBtSave.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSave.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_icon + Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSave.Name = "ToolStripBtSave" + Me.ToolStripBtSave.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSave.Text = "ToolStripButton1" + Me.ToolStripBtSave.ToolTipText = "Save" + ' + 'ToolStripBtSaveAs + ' + Me.ToolStripBtSaveAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSaveAs.Image = Global.VECTO.My.Resources.Resources.Actions_document_save_as_icon + Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSaveAs.Text = "ToolStripButton1" + Me.ToolStripBtSaveAs.ToolTipText = "Save As..." + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripBtSendTo + ' + Me.ToolStripBtSendTo.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripBtSendTo.Image = Global.VECTO.My.Resources.Resources.export_icon + Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(23, 22) + Me.ToolStripBtSendTo.Text = "Send to Job Editor" + Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 25) + ' + 'ToolStripButton1 + ' + Me.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton1.Image = Global.VECTO.My.Resources.Resources.Help_icon + Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton1.Name = "ToolStripButton1" + Me.ToolStripButton1.Size = New System.Drawing.Size(23, 22) + Me.ToolStripButton1.Text = "Help" + ' + 'GroupBox7 + ' + Me.GroupBox7.Controls.Add(Me.PnRt) + Me.GroupBox7.Controls.Add(Me.BtRtBrowse) + Me.GroupBox7.Controls.Add(Me.TbRtPath) + Me.GroupBox7.Controls.Add(Me.CbRtType) + Me.GroupBox7.Controls.Add(Me.Label12) + Me.GroupBox7.Location = New System.Drawing.Point(6, 345) + Me.GroupBox7.Name = "GroupBox7" + Me.GroupBox7.Size = New System.Drawing.Size(538, 81) + Me.GroupBox7.TabIndex = 7 + Me.GroupBox7.TabStop = False + Me.GroupBox7.Text = "Retarder Losses" + ' + 'PnRt + ' + Me.PnRt.Controls.Add(Me.Label45) + Me.PnRt.Controls.Add(Me.LbRtRatio) + Me.PnRt.Controls.Add(Me.TbRtRatio) + Me.PnRt.Location = New System.Drawing.Point(162, 12) + Me.PnRt.Name = "PnRt" + Me.PnRt.Size = New System.Drawing.Size(348, 34) + Me.PnRt.TabIndex = 11 + ' + 'Label45 + ' + Me.Label45.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label45.AutoSize = True + Me.Label45.Location = New System.Drawing.Point(330, 10) + Me.Label45.Name = "Label45" + Me.Label45.Size = New System.Drawing.Size(16, 13) + Me.Label45.TabIndex = 10 + Me.Label45.Text = "[-]" + ' + 'LbRtRatio + ' + Me.LbRtRatio.Location = New System.Drawing.Point(16, 10) + Me.LbRtRatio.Name = "LbRtRatio" + Me.LbRtRatio.Size = New System.Drawing.Size(246, 17) + Me.LbRtRatio.TabIndex = 5 + Me.LbRtRatio.Text = "LbRtRatio" + Me.LbRtRatio.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'TbRtRatio + ' + Me.TbRtRatio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbRtRatio.Location = New System.Drawing.Point(268, 7) + Me.TbRtRatio.Name = "TbRtRatio" + Me.TbRtRatio.Size = New System.Drawing.Size(56, 20) + Me.TbRtRatio.TabIndex = 0 + ' + 'BtRtBrowse + ' + Me.BtRtBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.BtRtBrowse.Location = New System.Drawing.Point(500, 52) + Me.BtRtBrowse.Name = "BtRtBrowse" + Me.BtRtBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtRtBrowse.TabIndex = 2 + Me.BtRtBrowse.Text = "..." + Me.BtRtBrowse.UseVisualStyleBackColor = True + ' + 'TbRtPath + ' + Me.TbRtPath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TbRtPath.Location = New System.Drawing.Point(5, 54) + Me.TbRtPath.Name = "TbRtPath" + Me.TbRtPath.Size = New System.Drawing.Size(489, 20) + Me.TbRtPath.TabIndex = 1 + ' + 'CbRtType + ' + Me.CbRtType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbRtType.FormattingEnabled = True + Me.CbRtType.Items.AddRange(New Object() {"None", "Primary", "Secondary"}) + Me.CbRtType.Location = New System.Drawing.Point(40, 19) + Me.CbRtType.Name = "CbRtType" + Me.CbRtType.Size = New System.Drawing.Size(91, 21) + Me.CbRtType.TabIndex = 0 + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(6, 22) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(31, 13) + Me.Label12.TabIndex = 0 + Me.Label12.Text = "Type" + ' + 'Label46 + ' + Me.Label46.AutoSize = True + Me.Label46.Location = New System.Drawing.Point(6, 5) + Me.Label46.Name = "Label46" + Me.Label46.Size = New System.Drawing.Size(154, 13) + Me.Label46.TabIndex = 31 + Me.Label46.Text = "Curb Weight Extra Trailer/Body" + ' + 'Label50 + ' + Me.Label50.AutoSize = True + Me.Label50.Location = New System.Drawing.Point(229, 5) + Me.Label50.Name = "Label50" + Me.Label50.Size = New System.Drawing.Size(25, 13) + Me.Label50.TabIndex = 24 + Me.Label50.Text = "[kg]" + ' + 'TbMassExtra + ' + Me.TbMassExtra.Location = New System.Drawing.Point(166, 2) + Me.TbMassExtra.Name = "TbMassExtra" + Me.TbMassExtra.Size = New System.Drawing.Size(57, 20) + Me.TbMassExtra.TabIndex = 1 + ' + 'GroupBox8 + ' + Me.GroupBox8.Controls.Add(Me.PnWheelDiam) + Me.GroupBox8.Controls.Add(Me.CbRim) + Me.GroupBox8.Controls.Add(Me.Label7) + Me.GroupBox8.Controls.Add(Me.Label6) + Me.GroupBox8.Controls.Add(Me.ButAxlRem) + Me.GroupBox8.Controls.Add(Me.LvRRC) + Me.GroupBox8.Controls.Add(Me.ButAxlAdd) + Me.GroupBox8.Location = New System.Drawing.Point(6, 133) + Me.GroupBox8.Name = "GroupBox8" + Me.GroupBox8.Size = New System.Drawing.Size(538, 206) + Me.GroupBox8.TabIndex = 4 + Me.GroupBox8.TabStop = False + Me.GroupBox8.Text = "Axles / Wheels" + ' + 'PnWheelDiam + ' + Me.PnWheelDiam.Controls.Add(Me.Label13) + Me.PnWheelDiam.Controls.Add(Me.TBrdyn) + Me.PnWheelDiam.Controls.Add(Me.Label35) + Me.PnWheelDiam.Location = New System.Drawing.Point(321, 163) + Me.PnWheelDiam.Name = "PnWheelDiam" + Me.PnWheelDiam.Size = New System.Drawing.Size(204, 33) + Me.PnWheelDiam.TabIndex = 48 + ' + 'CbRim + ' + Me.CbRim.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbRim.FormattingEnabled = True + Me.CbRim.Location = New System.Drawing.Point(131, 167) + Me.CbRim.Name = "CbRim" + Me.CbRim.Size = New System.Drawing.Size(184, 21) + Me.CbRim.TabIndex = 47 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(6, 170) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(119, 13) + Me.Label7.TabIndex = 46 + Me.Label7.Text = "Powered axle tyres/rims" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(405, 132) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(121, 13) + Me.Label6.TabIndex = 45 + Me.Label6.Text = "Double-Click to edit axle" + ' + 'ButAxlRem + ' + Me.ButAxlRem.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.ButAxlRem.Location = New System.Drawing.Point(41, 127) + Me.ButAxlRem.Name = "ButAxlRem" + Me.ButAxlRem.Size = New System.Drawing.Size(29, 23) + Me.ButAxlRem.TabIndex = 2 + Me.ButAxlRem.UseVisualStyleBackColor = True + ' + 'LvRRC + ' + Me.LvRRC.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LvRRC.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader7, Me.ColumnHeader8, Me.ColumnHeader2, Me.ColumnHeader9, Me.ColumnHeader1, Me.ColumnHeader3, Me.ColumnHeader4}) + Me.LvRRC.FullRowSelect = True + Me.LvRRC.GridLines = True + Me.LvRRC.HideSelection = False + Me.LvRRC.Location = New System.Drawing.Point(6, 19) + Me.LvRRC.MultiSelect = False + Me.LvRRC.Name = "LvRRC" + Me.LvRRC.Size = New System.Drawing.Size(526, 102) + Me.LvRRC.TabIndex = 0 + Me.LvRRC.TabStop = False + Me.LvRRC.UseCompatibleStateImageBehavior = False + Me.LvRRC.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader7 + ' + Me.ColumnHeader7.Text = "#" + Me.ColumnHeader7.Width = 22 + ' + 'ColumnHeader8 + ' + Me.ColumnHeader8.Text = "Rel. load" + Me.ColumnHeader8.Width = 62 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Twin T." + Me.ColumnHeader2.Width = 51 + ' + 'ColumnHeader9 + ' + Me.ColumnHeader9.Text = "RRC" + Me.ColumnHeader9.Width = 59 + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Fz ISO" + Me.ColumnHeader1.Width = 55 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Wheels" + Me.ColumnHeader3.Width = 181 + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "Inertia" + ' + 'ButAxlAdd + ' + Me.ButAxlAdd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.ButAxlAdd.Location = New System.Drawing.Point(6, 127) + Me.ButAxlAdd.Name = "ButAxlAdd" + Me.ButAxlAdd.Size = New System.Drawing.Size(29, 23) + Me.ButAxlAdd.TabIndex = 1 + Me.ButAxlAdd.UseVisualStyleBackColor = True + ' + 'CbAxleConfig + ' + Me.CbAxleConfig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbAxleConfig.FormattingEnabled = True + Me.CbAxleConfig.Items.AddRange(New Object() {"-", "4x2", "4x4", "6x2", "6x4", "6x6", "8x2", "8x4", "8x6", "8x8"}) + Me.CbAxleConfig.Location = New System.Drawing.Point(136, 80) + Me.CbAxleConfig.Name = "CbAxleConfig" + Me.CbAxleConfig.Size = New System.Drawing.Size(89, 21) + Me.CbAxleConfig.TabIndex = 3 + ' + 'CbCat + ' + Me.CbCat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbCat.FormattingEnabled = True + Me.CbCat.Items.AddRange(New Object() {"-", "Rigid Truck", "Tractor", "City Bus", "Interurban Bus", "Coach"}) + Me.CbCat.Location = New System.Drawing.Point(12, 80) + Me.CbCat.Name = "CbCat" + Me.CbCat.Size = New System.Drawing.Size(114, 21) + Me.CbCat.TabIndex = 0 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(13, 117) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(134, 13) + Me.Label5.TabIndex = 31 + Me.Label5.Text = "Gross Vehicle Mass Rating" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(201, 117) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(16, 13) + Me.Label9.TabIndex = 24 + Me.Label9.Text = "[t]" + ' + 'TbMassMass + ' + Me.TbMassMass.Location = New System.Drawing.Point(153, 114) + Me.TbMassMass.Name = "TbMassMass" + Me.TbMassMass.Size = New System.Drawing.Size(42, 20) + Me.TbMassMass.TabIndex = 4 + ' + 'StatusStrip1 + ' + Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 719) + Me.StatusStrip1.Name = "StatusStrip1" + Me.StatusStrip1.Size = New System.Drawing.Size(562, 22) + Me.StatusStrip1.SizingGrip = False + Me.StatusStrip1.TabIndex = 36 + Me.StatusStrip1.Text = "StatusStrip1" + ' + 'LbStatus + ' + Me.LbStatus.Name = "LbStatus" + Me.LbStatus.Size = New System.Drawing.Size(39, 17) + Me.LbStatus.Text = "Status" + ' + 'TbHDVclass + ' + Me.TbHDVclass.Location = New System.Drawing.Point(153, 142) + Me.TbHDVclass.Name = "TbHDVclass" + Me.TbHDVclass.ReadOnly = True + Me.TbHDVclass.Size = New System.Drawing.Size(25, 20) + Me.TbHDVclass.TabIndex = 1 + Me.TbHDVclass.TabStop = False + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(89, 57) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(71, 13) + Me.Label11.TabIndex = 31 + Me.Label11.Text = "Max. Loading" + ' + 'TbLoadingMax + ' + Me.TbLoadingMax.Location = New System.Drawing.Point(166, 54) + Me.TbLoadingMax.Name = "TbLoadingMax" + Me.TbLoadingMax.ReadOnly = True + Me.TbLoadingMax.Size = New System.Drawing.Size(57, 20) + Me.TbLoadingMax.TabIndex = 3 + Me.TbLoadingMax.TabStop = False + ' + 'Label22 + ' + Me.Label22.AutoSize = True + Me.Label22.Location = New System.Drawing.Point(229, 57) + Me.Label22.Name = "Label22" + Me.Label22.Size = New System.Drawing.Size(25, 13) + Me.Label22.TabIndex = 24 + Me.Label22.Text = "[kg]" + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.PnLoad) + Me.GroupBox1.Controls.Add(Me.TbMass) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Controls.Add(Me.Label14) + Me.GroupBox1.Location = New System.Drawing.Point(6, 3) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(266, 124) + Me.GroupBox1.TabIndex = 2 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Weight / Loading" + ' + 'PnLoad + ' + Me.PnLoad.Controls.Add(Me.Label2) + Me.PnLoad.Controls.Add(Me.Label31) + Me.PnLoad.Controls.Add(Me.TbLoad) + Me.PnLoad.Controls.Add(Me.TbMassExtra) + Me.PnLoad.Controls.Add(Me.TbLoadingMax) + Me.PnLoad.Controls.Add(Me.Label50) + Me.PnLoad.Controls.Add(Me.Label46) + Me.PnLoad.Controls.Add(Me.Label22) + Me.PnLoad.Controls.Add(Me.Label11) + Me.PnLoad.Location = New System.Drawing.Point(6, 43) + Me.PnLoad.Name = "PnLoad" + Me.PnLoad.Size = New System.Drawing.Size(256, 75) + Me.PnLoad.TabIndex = 25 + ' + 'GrAirRes + ' + Me.GrAirRes.Controls.Add(Me.PnCdATrTr) + Me.GrAirRes.Controls.Add(Me.PnCdARig) + Me.GrAirRes.Controls.Add(Me.Label3) + Me.GrAirRes.Controls.Add(Me.Label4) + Me.GrAirRes.Controls.Add(Me.Label37) + Me.GrAirRes.Controls.Add(Me.Label38) + Me.GrAirRes.Location = New System.Drawing.Point(278, 3) + Me.GrAirRes.Name = "GrAirRes" + Me.GrAirRes.Size = New System.Drawing.Size(266, 124) + Me.GrAirRes.TabIndex = 3 + Me.GrAirRes.TabStop = False + Me.GrAirRes.Text = "Air Resistance" + ' + 'PnCdATrTr + ' + Me.PnCdATrTr.Controls.Add(Me.LbCdATr) + Me.PnCdATrTr.Controls.Add(Me.TBcdTrTr) + Me.PnCdATrTr.Controls.Add(Me.TBAquersTrTr) + Me.PnCdATrTr.Location = New System.Drawing.Point(97, 26) + Me.PnCdATrTr.Name = "PnCdATrTr" + Me.PnCdATrTr.Size = New System.Drawing.Size(64, 78) + Me.PnCdATrTr.TabIndex = 27 + ' + 'LbCdATr + ' + Me.LbCdATr.AutoSize = True + Me.LbCdATr.Location = New System.Drawing.Point(3, 3) + Me.LbCdATr.Name = "LbCdATr" + Me.LbCdATr.Size = New System.Drawing.Size(58, 13) + Me.LbCdATr.TabIndex = 25 + Me.LbCdATr.Text = "Tr && Trailer" + ' + 'PnCdARig + ' + Me.PnCdARig.Controls.Add(Me.LbCdARig) + Me.PnCdARig.Controls.Add(Me.TBcwRig) + Me.PnCdARig.Controls.Add(Me.TBAquersRig) + Me.PnCdARig.Location = New System.Drawing.Point(164, 26) + Me.PnCdARig.Name = "PnCdARig" + Me.PnCdARig.Size = New System.Drawing.Size(64, 78) + Me.PnCdARig.TabIndex = 26 + ' + 'LbCdARig + ' + Me.LbCdARig.AutoSize = True + Me.LbCdARig.Location = New System.Drawing.Point(10, 3) + Me.LbCdARig.Name = "LbCdARig" + Me.LbCdARig.Size = New System.Drawing.Size(31, 13) + Me.LbCdARig.TabIndex = 25 + Me.LbCdARig.Text = "Rigid" + ' + 'TBcwRig + ' + Me.TBcwRig.Location = New System.Drawing.Point(3, 24) + Me.TBcwRig.Name = "TBcwRig" + Me.TBcwRig.Size = New System.Drawing.Size(57, 20) + Me.TBcwRig.TabIndex = 0 + ' + 'TBAquersRig + ' + Me.TBAquersRig.Location = New System.Drawing.Point(3, 50) + Me.TBAquersRig.Name = "TBAquersRig" + Me.TBAquersRig.Size = New System.Drawing.Size(57, 20) + Me.TBAquersRig.TabIndex = 1 + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_VEH + Me.PictureBox1.Location = New System.Drawing.Point(12, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(538, 40) + Me.PictureBox1.TabIndex = 37 + Me.PictureBox1.TabStop = False + ' + 'CmOpenFile + ' + Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) + Me.CmOpenFile.Name = "CmOpenFile" + Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + ' + 'OpenWithToolStripMenuItem + ' + Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Text = "Open with ..." + ' + 'ShowInFolderToolStripMenuItem + ' + Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" + ' + 'PnAll + ' + Me.PnAll.Controls.Add(Me.GrAirRes) + Me.PnAll.Controls.Add(Me.GroupBox1) + Me.PnAll.Controls.Add(Me.GroupBox8) + Me.PnAll.Controls.Add(Me.GroupBox7) + Me.PnAll.Controls.Add(Me.GroupBox6) + Me.PnAll.Location = New System.Drawing.Point(6, 172) + Me.PnAll.Name = "PnAll" + Me.PnAll.Size = New System.Drawing.Size(552, 514) + Me.PnAll.TabIndex = 38 + ' + 'PicVehicle + ' + Me.PicVehicle.BackColor = System.Drawing.Color.LightGray + Me.PicVehicle.Location = New System.Drawing.Point(250, 74) + Me.PicVehicle.Name = "PicVehicle" + Me.PicVehicle.Size = New System.Drawing.Size(300, 88) + Me.PicVehicle.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PicVehicle.TabIndex = 39 + Me.PicVehicle.TabStop = False + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(89, 145) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(58, 13) + Me.Label8.TabIndex = 40 + Me.Label8.Text = "HDV Class" + ' + 'F_VEH + ' + Me.AcceptButton = Me.ButOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.ButCancel + Me.ClientSize = New System.Drawing.Size(562, 741) + Me.Controls.Add(Me.Label8) + Me.Controls.Add(Me.TbHDVclass) + Me.Controls.Add(Me.PicVehicle) + Me.Controls.Add(Me.PnAll) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.Label9) + Me.Controls.Add(Me.StatusStrip1) + Me.Controls.Add(Me.CbAxleConfig) + Me.Controls.Add(Me.TbMassMass) + Me.Controls.Add(Me.CbCat) + Me.Controls.Add(Me.Label5) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.ButCancel) + Me.Controls.Add(Me.ButOK) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.Name = "F_VEH" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "F05_VEH" + Me.GroupBox6.ResumeLayout(False) + Me.GroupBox6.PerformLayout() + Me.ToolStrip1.ResumeLayout(False) + Me.ToolStrip1.PerformLayout() + Me.GroupBox7.ResumeLayout(False) + Me.GroupBox7.PerformLayout() + Me.PnRt.ResumeLayout(False) + Me.PnRt.PerformLayout() + Me.GroupBox8.ResumeLayout(False) + Me.GroupBox8.PerformLayout() + Me.PnWheelDiam.ResumeLayout(False) + Me.PnWheelDiam.PerformLayout() + Me.StatusStrip1.ResumeLayout(False) + Me.StatusStrip1.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.PnLoad.ResumeLayout(False) + Me.PnLoad.PerformLayout() + Me.GrAirRes.ResumeLayout(False) + Me.GrAirRes.PerformLayout() + Me.PnCdATrTr.ResumeLayout(False) + Me.PnCdATrTr.PerformLayout() + Me.PnCdARig.ResumeLayout(False) + Me.PnCdARig.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.CmOpenFile.ResumeLayout(False) + Me.PnAll.ResumeLayout(False) + CType(Me.PicVehicle, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TbMass As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents TbLoad As System.Windows.Forms.TextBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents TBcdTrTr As System.Windows.Forms.TextBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents TBAquersTrTr As System.Windows.Forms.TextBox + Friend WithEvents Label13 As System.Windows.Forms.Label + Friend WithEvents TBrdyn As System.Windows.Forms.TextBox + Friend WithEvents ButOK As System.Windows.Forms.Button + Friend WithEvents ButCancel As System.Windows.Forms.Button + Friend WithEvents Label14 As System.Windows.Forms.Label + Friend WithEvents Label31 As System.Windows.Forms.Label + Friend WithEvents Label35 As System.Windows.Forms.Label + Friend WithEvents Label37 As System.Windows.Forms.Label + Friend WithEvents Label38 As System.Windows.Forms.Label + Friend WithEvents CbCdMode As System.Windows.Forms.ComboBox + Friend WithEvents TbCdFile As System.Windows.Forms.TextBox + Friend WithEvents BtCdFileBrowse As System.Windows.Forms.Button + Friend WithEvents GroupBox6 As System.Windows.Forms.GroupBox + Friend WithEvents LbCdMode As System.Windows.Forms.Label + Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip + Friend WithEvents ToolStripBtNew As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtOpen As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSave As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripBtSaveAs As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripBtSendTo As System.Windows.Forms.ToolStripButton + Friend WithEvents GroupBox7 As System.Windows.Forms.GroupBox + Friend WithEvents LbRtRatio As System.Windows.Forms.Label + Friend WithEvents TbRtRatio As System.Windows.Forms.TextBox + Friend WithEvents BtRtBrowse As System.Windows.Forms.Button + Friend WithEvents TbRtPath As System.Windows.Forms.TextBox + Friend WithEvents CbRtType As System.Windows.Forms.ComboBox + Friend WithEvents Label12 As System.Windows.Forms.Label + Friend WithEvents Label45 As System.Windows.Forms.Label + Friend WithEvents PnRt As System.Windows.Forms.Panel + Friend WithEvents Label46 As System.Windows.Forms.Label + Friend WithEvents Label50 As System.Windows.Forms.Label + Friend WithEvents TbMassExtra As System.Windows.Forms.TextBox + Friend WithEvents GroupBox8 As System.Windows.Forms.GroupBox + Friend WithEvents ButAxlRem As System.Windows.Forms.Button + Friend WithEvents LvRRC As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader7 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader8 As System.Windows.Forms.ColumnHeader + Friend WithEvents ButAxlAdd As System.Windows.Forms.Button + Friend WithEvents CbCat As System.Windows.Forms.ComboBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents TbMassMass As System.Windows.Forms.TextBox + Friend WithEvents ColumnHeader9 As System.Windows.Forms.ColumnHeader + Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip + Friend WithEvents LbStatus As System.Windows.Forms.ToolStripStatusLabel + Friend WithEvents CbAxleConfig As System.Windows.Forms.ComboBox + Friend WithEvents TbHDVclass As System.Windows.Forms.TextBox + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents TbLoadingMax As System.Windows.Forms.TextBox + Friend WithEvents Label22 As System.Windows.Forms.Label + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents GrAirRes As System.Windows.Forms.GroupBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton + Friend WithEvents CmOpenFile As System.Windows.Forms.ContextMenuStrip + Friend WithEvents OpenWithToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents ShowInFolderToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents BtCdFileOpen As System.Windows.Forms.Button + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents PnLoad As System.Windows.Forms.Panel + Friend WithEvents LbCdARig As System.Windows.Forms.Label + Friend WithEvents LbCdATr As System.Windows.Forms.Label + Friend WithEvents TBcwRig As System.Windows.Forms.TextBox + Friend WithEvents TBAquersRig As System.Windows.Forms.TextBox + Friend WithEvents PnCdARig As System.Windows.Forms.Panel + Friend WithEvents PnAll As System.Windows.Forms.Panel + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents CbRim As System.Windows.Forms.ComboBox + Friend WithEvents PnWheelDiam As System.Windows.Forms.Panel + Friend WithEvents PicVehicle As System.Windows.Forms.PictureBox + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents PnCdATrTr As System.Windows.Forms.Panel +End Class diff --git a/VECTO/GUI/F_VEH.resx b/VECTO/GUI/F_VEH.resx new file mode 100644 index 0000000000000000000000000000000000000000..afc65da6332f6269d7ed1eb1f8f2e237c3a870bc --- /dev/null +++ b/VECTO/GUI/F_VEH.resx @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>32, 17</value> + </metadata> + <metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>142, 21</value> + </metadata> + <metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>258, 21</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QLg6NsG/v7+AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////zv//////////////////////////////zQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4B1uDQEIil + di319/MQ////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yr/////MTEx/wAAAP8AAAD/AAAA/zIy + Mv//////////KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gudtI5FRHEmhMbUvS7+/v4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////htXV1f8AAAD/AAAA/wAA + AP8AAAD/AAAA/9bW1v////+FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B7PDpJmOJS5s4aBnEjal8Wf39/A8AAAAAAAAAAAAAAAAAAAAAAAAAAP///wH////geXl5/wAA + AP8AAAD/AAAA/wAAAP8AAAD/enp6/////9////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wIAAAAAAAAAAAAAAAAAAAAA////Pf7+ + /v8fHx//AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD//v7+/////zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+CQAAAAAAAAAAAAAAAAAA + AAD///+ZwsLC/wAAAP8AAAD/AAAA/xgYGP8AAAD/AAAA/wAAAP/Dw8P/////mAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2QV4zy9fAg////AQAA + AAAAAAAA////Bv///+5mZmb/AAAA/wAAAP8AAAD/sbGx/wEBAf8AAAD/AAAA/2dnZ//////t////BgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJqyilI1ZhbTNmYW/TZmF/82Zhf5P20hwMDP + tzj+/v4EAAAAAAAAAAD///9Q+fn5/xEREf8AAAD/AAAA/yQkJP//////Ozs7/wAAAP8AAAD/EhIS//n5 + +f////9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wLr7+cpX4ZFpTVmFfA2ZhX/NmYW/zZm + Fv42ZhfZh6N0ZPz9/BL+/v4BAAAAAP///6yvr6//AAAA/wAAAP8AAAD/enp6/////9uRkZH/AAAA/wAA + AP8AAAD/sLCw/////6sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+B7TGqEI6ahnMNmcV/DZn + Ff82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/gL///8P////+FNTU/8AAAD/AAAA/wAAAP/R0dH/////hebm + 5v8CAgL/AAAA/wAAAP9UVFT/////9////w8AAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+vgZeppleTVm + FOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+Cv///2Tw8PD/BwcH/wAAAP8AAAD/KCgo//// + //////8u/////T8/P/8AAAD/AAAA/wgICP/w8PD/////YwAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+As/b + yDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5fv8+0k////v5ubm/8AAAD/AAAA/wAA + AP9+fn7/////1wAAAAD////AlZWV/wAAAP8AAAD/AAAA/5ycnP////++AAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxc3ZxVL+/v7+QEBA/wAA + AP8AAAD/AAAA/9XV1f////+BAAAAAP///2rp6en/AwMD/wAAAP8AAAD/QUFB//////3///8cAAAAAAAA + AAAAAAAA////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf41ZhTdssSlseTk + 4/8BAQH/AAAA/wAAAP8rKyv//////////yoAAAAA////Fv////xCQkL/AAAA/wAAAP8CAgL/4+Pj//// + /3YAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVm + FPV5mmTylpiV/wEBAf8AAAD/AAAA/4KCgv/////UAAAAAAAAAAAAAAAA////vZmZmf8AAAD/AAAA/wAA + AP+JiYn/////0gAAAAAAAAAA////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm + FP82ZxX/NmcV/VJ8N/dQV0v/CgoK/wAAAP8AAAD/2NjY/////30AAAAAAAAAAAAAAAD///9m7Ozs/wQE + BP8AAAD/AAAA/y0tLf/////SAAAAAAAAAAD+/v4CzdnFMURxJbo1ZhT4NWYU/zVmFP81ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP82ZxX/QG4h/J20jf/8/Pv/////////////////////JwAAAAAAAAAAAAAAAP// + /xP////7/////////////////////////9IAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/NWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39/QL9/v0C/f79Av3+ + /QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79AgAAAAD///8C5uziK1mBPqs0ZRPzNWYU/zVm + FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTezUPZ4tM12eLTNdni + 0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U12eLUNdrj1DXa49U1AAAAAP7+/givwqJGN2cWzjVm + FP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFfg1ZhThRHImz0Rx + JspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3LspIdCvKSXUsykt3Lsr//v8B9vj1HXSW + XoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZn + Ff42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/f7/ + /gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVmFP01ZhT/NWYU/zVm + FP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpqG/87axz/Omka/zpq + G/87axz//f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp3k1fhkWnNGUT8TVm + FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zhoGf85aRr/Omob/ztr + HP85aRr/Omob/ztrHP/j6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5Cq + flU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp + Gv86ahv/O2sc/zlpGv86ahv/O2sc/6zAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVmFP81ZhT9PWwdycPS + ujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdn + GP83Zxj/OWka/zpqG/86ahv/OWka/zpqG/86ahv/cpRchjRlE+Y1ZhT+NWYU/zVmFP81ZhT/NWYU/zVm + FPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhT/NmYV/zZm + F/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/85aRr/Omob/zpqG/9BbyK6NGUU9jVmFP01ZhT9NWYU/TVm + FP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZm + Ff02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/ThoGf06aRr9Omob/TZnFaE2ZxXINmcVyjZn + Fco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gUAAAAA/v7+A7rKrzA7ahuiNmcVyTZnFco2ZxXKN2cWyjdo + Fso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3KOmobyjtrHMo8ax3KscSkKrHE + pDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+AQAAAAAAAAAA8/bxC7bHqiqxxKQ1scSkNbHE + pDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPFpzWyxaY1s8WnNbPF + pzX///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAA////Av// + /wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////8B////Af/9/gD/+f4A//j+AP/4/AB/8HwAf/B8AH/geAA/4D + gAP+A4ED/AEBAfwBAYH4AAOB+AADgPgAB8DwAAfA8AB//+AAP//gAAAAwAAAAMAAAADAIAAAgHAAAIBw + AAAAcAAAAPgAAAD4AAD///////////////8= +</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_VEH.vb b/VECTO/GUI/F_VEH.vb new file mode 100644 index 0000000000000000000000000000000000000000..c2b13185325359119f1c3c4478cefc4e9cdd7cb6 --- /dev/null +++ b/VECTO/GUI/F_VEH.vb @@ -0,0 +1,833 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Vehicle Editor. +''' </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 = "" + + 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 + + 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 + + Me.PnAll.Enabled = True + + Else + Me.PnAll.Enabled = False + HDVclass = "-" + End If + + Me.TbMassExtra.Text = "-" + Me.TbLoad.Text = "-" + Me.CbCdMode.SelectedIndex = 1 + + If Me.LvRRC.Items.Count > 0 Then + rdyn = Declaration.rdyn(Me.LvRRC.Items(1).SubItems(5).Text, Me.CbRim.Text) + Else + rdyn = -1 + End If + + If rdyn < 0 Then + Me.TBrdyn.Text = "-" + Else + Me.TBrdyn.Text = rdyn + End If + + End Sub + + + +#Region "Toolbar" + + 'New + Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click + newVEH() + End Sub + + 'Open + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + If fbVEH.OpenDialog(VehFile) Then openVEH(fbVEH.Files(0)) + End Sub + + 'Save + Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub + + 'Save As + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub + + 'Send to VECTO Editor + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + + If ChangeCheckCancel() Then Exit Sub + + If VehFile = "" 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 Not F_VECTO.Visible Then + JobDir = "" + F_VECTO.Show() + F_VECTO.VECTOnew() + Else + F_VECTO.WindowState = FormWindowState.Normal + 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") + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub + +#End Region + + 'Save and Close + Private Sub ButOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButOK.Click + If SaveOrSaveAs(False) Then Me.Close() + End Sub + + 'Cancel + Private Sub ButCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButCancel.Click + Me.Close() + End Sub + + 'Save or Save As function = true if file is saved + Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean + If VehFile = "" Or SaveAs Then + If fbVEH.SaveDialog(VehFile) Then + VehFile = fbVEH.Files(0) + Else + Return False + End If + End If + Return saveVEH(VehFile) + End Function + + 'New VEH + Private Sub newVEH() + + If ChangeCheckCancel() Then Exit Sub + + Me.TbMass.Text = "" + Me.TbLoad.Text = "" + Me.TBrdyn.Text = "" + Me.TBcdTrTr.Text = "" + Me.TBAquersTrTr.Text = "" + Me.TBcwRig.Text = "" + Me.TBAquersRig.Text = "" + + Me.CbCdMode.SelectedIndex = 0 + Me.TbCdFile.Text = "" + + Me.CbRtType.SelectedIndex = 0 + Me.TbRtRatio.Text = "1" + Me.TbRtPath.Text = "" + + Me.CbCat.SelectedIndex = 0 + + Me.LvRRC.Items.Clear() + + Me.TbMassMass.Text = "" + Me.TbMassExtra.Text = "" + Me.CbAxleConfig.SelectedIndex = 0 + + Me.CbRim.SelectedIndex = 0 + + + DeclInit() + + + + VehFile = "" + Me.Text = "VEH Editor" + Me.LbStatus.Text = "" + + Changed = False + + End Sub + + 'Open VEH + Sub openVEH(ByVal file As String) + Dim i As Int16 + Dim VEH0 As cVEH + Dim inertia As Single + + Dim a0 As cVEH.cAxle + Dim lvi As ListViewItem + + If ChangeCheckCancel() Then Exit Sub + + VEH0 = New cVEH + + VEH0.FilePath = file + + If Not VEH0.ReadFile Then + MsgBox("Cannot read " & file & "!") + Exit Sub + End If + + If Cfg.DeclMode <> VEH0.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.TbMass.Text = VEH0.Mass + Me.TbMassExtra.Text = VEH0.MassExtra + Me.TbLoad.Text = VEH0.Loading + Me.TBrdyn.Text = VEH0.rdyn + Me.CbRim.Text = VEH0.Rim + + + Me.CbCdMode.SelectedIndex = CType(VEH0.CdMode, Integer) + Me.TbCdFile.Text = VEH0.CdFile.OriginalPath + + Me.CbRtType.SelectedIndex = CType(VEH0.RtType, Integer) + Me.TbRtRatio.Text = CStr(VEH0.RtRatio) + Me.TbRtPath.Text = CStr(VEH0.RtFile.OriginalPath) + + + Me.CbCat.SelectedIndex = CType(VEH0.VehCat, Integer) + + + Me.LvRRC.Items.Clear() + i = 0 + For Each a0 In VEH0.Axles + i += 1 + lvi = New ListViewItem + lvi.SubItems(0).Text = i.ToString + + If Cfg.DeclMode Then + lvi.SubItems.Add("-") + Else + lvi.SubItems.Add(a0.Share) + End If + + If a0.TwinTire Then + lvi.SubItems.Add("yes") + Else + lvi.SubItems.Add("no") + End If + lvi.SubItems.Add(a0.RRC) + lvi.SubItems.Add(a0.FzISO) + lvi.SubItems.Add(a0.Wheels) + + If Cfg.DeclMode Then + inertia = Declaration.WheelsInertia(a0.Wheels) + If inertia < 0 Then + lvi.SubItems.Add("-") + Else + lvi.SubItems.Add(inertia) + End If + Else + lvi.SubItems.Add(a0.Inertia) + End If + + LvRRC.Items.Add(lvi) + Next + + Me.TbMassMass.Text = VEH0.MassMax + Me.TbMassExtra.Text = VEH0.MassExtra + + Me.CbAxleConfig.SelectedIndex = CType(VEH0.AxleConf, Integer) + + Me.TBcdTrTr.Text = VEH0.Cd0 + Me.TBAquersTrTr.Text = VEH0.Aquers + Me.TBcwRig.Text = VEH0.Cd02 + Me.TBAquersRig.Text = VEH0.Aquers2 + + DeclInit() + + fbVEH.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + VehFile = file + Me.Activate() + + Changed = False + + End Sub + + 'Save VEH + Private Function saveVEH(ByVal file As String) As Boolean + Dim a0 As cVEH.cAxle + Dim VEH0 As cVEH + Dim LV0 As ListViewItem + + VEH0 = New cVEH + VEH0.FilePath = file + + VEH0.Mass = CSng(fTextboxToNumString(Me.TbMass.Text)) + VEH0.MassExtra = CSng(fTextboxToNumString(Me.TbMassExtra.Text)) + VEH0.Loading = CSng(fTextboxToNumString(Me.TbLoad.Text)) + + VEH0.Cd0 = CSng(fTextboxToNumString(Me.TBcdTrTr.Text)) + VEH0.Aquers = CSng(fTextboxToNumString(Me.TBAquersTrTr.Text)) + + If Me.PnCdARig.Visible Then + VEH0.Cd02 = CSng(fTextboxToNumString(Me.TBcwRig.Text)) + VEH0.Aquers2 = CSng(fTextboxToNumString(Me.TBAquersRig.Text)) + End If + + VEH0.Rim = Me.CbRim.Text + + VEH0.rdyn = CSng(fTextboxToNumString(Me.TBrdyn.Text)) + + + VEH0.CdMode = CType(Me.CbCdMode.SelectedIndex, tCdMode) + VEH0.CdFile.Init(fPATH(file), Me.TbCdFile.Text) + + VEH0.RtType = CType(Me.CbRtType.SelectedIndex, tRtType) + VEH0.RtRatio = CSng(fTextboxToNumString(Me.TbRtRatio.Text)) + VEH0.RtFile.Init(fPATH(file), Me.TbRtPath.Text) + + VEH0.VehCat = CType(Me.CbCat.SelectedIndex, tVehCat) + + For Each LV0 In LvRRC.Items + + a0 = New cVEH.cAxle + + a0.Share = fTextboxToNumString(LV0.SubItems(1).Text) + a0.TwinTire = (LV0.SubItems(2).Text = "yes") + a0.RRC = fTextboxToNumString(LV0.SubItems(3).Text) + a0.FzISO = fTextboxToNumString(LV0.SubItems(4).Text) + a0.Wheels = LV0.SubItems(5).Text + a0.Inertia = fTextboxToNumString(LV0.SubItems(6).Text) + + VEH0.Axles.Add(a0) + + Next + + VEH0.MassMax = CSng(fTextboxToNumString(Me.TbMassMass.Text)) + VEH0.MassExtra = CSng(fTextboxToNumString(Me.TbMassExtra.Text)) + VEH0.AxleConf = CType(Me.CbAxleConfig.SelectedIndex, tAxleConf) + + '--------------------------------------------------------------------------------- + + If Not VEH0.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.TbVEH.Text, JobDir)) <> UCase(file) Then F_VECTO.TbVEH.Text = fFileWoDir(file, JobDir) + F_VECTO.UpdatePic() + End If + End If + + fbVEH.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + + 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 + Dim bEnabled As Boolean + + Select Case CType(Me.CbCdMode.SelectedIndex, tCdMode) + + Case tCdMode.ConstCd0 + bEnabled = False + Me.LbCdMode.Text = "" + + Case tCdMode.CdOfV + bEnabled = True + Me.LbCdMode.Text = "Input file: Vehicle Speed [km/h], Cd Scaling Factor [-]" + + Case Else ' tCdMode.CdOfBeta + bEnabled = True + Me.LbCdMode.Text = "Input file: Yaw Angle [°], Cd Scaling Factor [-]" + + End Select + + If Not Cfg.DeclMode Then + Me.TbCdFile.Enabled = bEnabled + Me.BtCdFileBrowse.Enabled = bEnabled + Me.BtCdFileOpen.Enabled = bEnabled + End If + + Change() + End Sub + + 'Cd File Browse + Private Sub BtCdFileBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtCdFileBrowse.Click + Dim ex As String + + If Me.CbCdMode.SelectedIndex = 1 Then + ex = "vcdv" + Else + ex = "vcdb" + End If + + 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 + Private Sub BtCdFileOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtCdFileOpen.Click + OpenFiles(fFileRepl(Me.TbCdFile.Text, fPATH(VehFile))) + End Sub + +#End Region + +#Region "Retarder" + + 'Rt Type Change + 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" + Me.TbRtPath.Enabled = True + Me.BtRtBrowse.Enabled = True + Me.PnRt.Enabled = True + Case 2 'Secondary + Me.LbRtRatio.Text = "Ratio to cardan shaft speed" + Me.TbRtPath.Enabled = True + Me.BtRtBrowse.Enabled = True + Me.PnRt.Enabled = True + Case Else '0 None + Me.LbRtRatio.Text = "Ratio" + Me.TbRtPath.Enabled = False + Me.BtRtBrowse.Enabled = False + Me.PnRt.Enabled = False + 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)) + + End Sub + +#End Region + +#Region "Track changes" + + 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 + + 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 + + Else + + Return False + + End If + + End Function + + Private Sub TBmass_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMass.TextChanged + SetMaxLoad() + Change() + End Sub + + Private Sub TBston_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbLoad.TextChanged + Change() + End Sub + + Private Sub TBDreifen_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBrdyn.TextChanged + Change() + End Sub + + 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 TBcdTrTr.TextChanged, TBcwRig.TextChanged + Change() + End Sub + + Private Sub TBAquers_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBAquersTrTr.TextChanged, TBAquersRig.TextChanged + Change() + End Sub + + + Private Sub TbCdFile_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbCdFile.TextChanged + Change() + End Sub + + Private Sub TbRtPath_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbRtPath.TextChanged + Change() + End Sub + + Private Sub TbRtRatio_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbRtRatio.TextChanged + Change() + End Sub + + Private Sub CbCat_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbCat.SelectedIndexChanged + Change() + SetHDVclass() + DeclInit() + End Sub + + Private Sub TbMassTrailer_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMassExtra.TextChanged + SetMaxLoad() + Change() + End Sub + + Private Sub TbMassMax_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMassMass.TextChanged + SetMaxLoad() + Change() + SetHDVclass() + DeclInit() + End Sub + + Private Sub CbAxleConfig_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbAxleConfig.SelectedIndexChanged + Change() + SetHDVclass() + DeclInit() + End Sub + +#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 + +#Region "Axle Configuration" + + Private Sub ButAxlAdd_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlAdd.Click + Dim lv0 As ListViewItem + + AxlDlog.Clear() + + If AxlDlog.ShowDialog = Windows.Forms.DialogResult.OK Then + lv0 = New ListViewItem + + 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)) + + Me.LvRRC.Items.Add(lv0) + + Change() + DeclInit() + + End If + + + End Sub + + Private Sub ButAxlRem_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlRem.Click + RemoveAxleItem() + End Sub + + Private Sub LvAxle_DoubleClick(sender As Object, e As System.EventArgs) Handles LvRRC.DoubleClick + EditAxleItem() + End Sub + + 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 + + Private Sub RemoveAxleItem() + Dim lv0 As ListViewItem + Dim i As Integer + + 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.SelectedItems(0).Remove() + + If LvRRC.Items.Count > 0 Then + + i = 0 + For Each lv0 In LvRRC.Items + i += 1 + lv0.SubItems(0).Text = i.ToString + Next + + LvRRC.Items(LvRRC.Items.Count - 1).Selected = True + LvRRC.Focus() + End If + + Change() + + End Sub + + Private Sub EditAxleItem() + Dim LV0 As ListViewItem + + If LvRRC.SelectedItems.Count = 0 Then Exit Sub + + LV0 = LvRRC.SelectedItems(0) + + 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 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 If + + + End Sub + +#End Region + +#Region "Open File Context Menu" + + Private CmFiles As String() + + Private Sub OpenFiles(ParamArray files() As String) + + If files.Length = 0 Then Exit Sub + + CmFiles = files + + 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 + 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 + +#End Region + + + +End Class diff --git a/VECTO/GUI/F_VEH_AuxDlog.Designer.vb b/VECTO/GUI/F_VEH_AuxDlog.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..c6aefd30bd0db568b4665e1a405b37fc15cbe9e2 --- /dev/null +++ b/VECTO/GUI/F_VEH_AuxDlog.Designer.vb @@ -0,0 +1,429 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_VEH_AuxDlog + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.TbID = New System.Windows.Forms.TextBox() + Me.TbPath = New System.Windows.Forms.TextBox() + Me.BtBrowse = New System.Windows.Forms.Button() + Me.CbType = New System.Windows.Forms.ComboBox() + Me.LbIDhelp = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.CbTech = New System.Windows.Forms.ComboBox() + Me.PnTech = New System.Windows.Forms.Panel() + Me.LVTech = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(),System.Windows.Forms.ColumnHeader) + Me.Tabs = New System.Windows.Forms.TabControl() + Me.tabMain = New System.Windows.Forms.TabPage() + Me.PnFile = New System.Windows.Forms.Panel() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.txtPulleyGearRatio = New System.Windows.Forms.TextBox() + Me.txtPulleyGearEfficiency = New System.Windows.Forms.TextBox() + Me.tabListItems = New System.Windows.Forms.TabPage() + Me.pnlListItems = New System.Windows.Forms.Panel() + Me.dgvInputs = New System.Windows.Forms.DataGridView() + Me.ItemName = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.ItemValue = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.btnConsumerRemove = New System.Windows.Forms.Button() + Me.btnConsumerAdd = New System.Windows.Forms.Button() + Me.tabTechnologies = New System.Windows.Forms.TabPage() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.PnTech.SuspendLayout() + Me.Tabs.SuspendLayout() + Me.tabMain.SuspendLayout() + Me.PnFile.SuspendLayout() + Me.tabListItems.SuspendLayout() + Me.pnlListItems.SuspendLayout() + CType(Me.dgvInputs, System.ComponentModel.ISupportInitialize).BeginInit() + Me.tabTechnologies.SuspendLayout() + Me.TableLayoutPanel1.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(171, 10) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(18, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "ID" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(9, 10) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(31, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Type" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(7, 39) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(50, 13) + Me.Label3.TabIndex = 1 + Me.Label3.Text = "Input File" + ' + 'TbID + ' + Me.TbID.Location = New System.Drawing.Point(195, 7) + Me.TbID.Name = "TbID" + Me.TbID.Size = New System.Drawing.Size(39, 20) + Me.TbID.TabIndex = 5 + ' + 'TbPath + ' + Me.TbPath.Location = New System.Drawing.Point(7, 55) + Me.TbPath.Name = "TbPath" + Me.TbPath.Size = New System.Drawing.Size(383, 20) + Me.TbPath.TabIndex = 10 + ' + 'BtBrowse + ' + Me.BtBrowse.Location = New System.Drawing.Point(396, 53) + Me.BtBrowse.Name = "BtBrowse" + Me.BtBrowse.Size = New System.Drawing.Size(32, 23) + Me.BtBrowse.TabIndex = 15 + Me.BtBrowse.Text = "..." + Me.BtBrowse.UseVisualStyleBackColor = True + ' + 'CbType + ' + Me.CbType.FormattingEnabled = True + Me.CbType.Location = New System.Drawing.Point(46, 7) + Me.CbType.Name = "CbType" + Me.CbType.Size = New System.Drawing.Size(109, 21) + Me.CbType.TabIndex = 0 + ' + 'LbIDhelp + ' + Me.LbIDhelp.AutoSize = True + Me.LbIDhelp.Location = New System.Drawing.Point(240, 10) + Me.LbIDhelp.Name = "LbIDhelp" + Me.LbIDhelp.Size = New System.Drawing.Size(0, 13) + Me.LbIDhelp.TabIndex = 26 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(6, 9) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(63, 13) + Me.Label4.TabIndex = 1 + Me.Label4.Text = "Technology" + ' + 'CbTech + ' + Me.CbTech.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbTech.FormattingEnabled = True + Me.CbTech.Location = New System.Drawing.Point(75, 6) + Me.CbTech.Name = "CbTech" + Me.CbTech.Size = New System.Drawing.Size(352, 21) + Me.CbTech.TabIndex = 27 + ' + 'PnTech + ' + Me.PnTech.Controls.Add(Me.CbTech) + Me.PnTech.Controls.Add(Me.Label4) + Me.PnTech.Location = New System.Drawing.Point(31, 52) + Me.PnTech.Name = "PnTech" + Me.PnTech.Size = New System.Drawing.Size(435, 34) + Me.PnTech.TabIndex = 28 + ' + 'LVTech + ' + Me.LVTech.CheckBoxes = True + Me.LVTech.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1}) + Me.LVTech.FullRowSelect = True + Me.LVTech.GridLines = True + Me.LVTech.Location = New System.Drawing.Point(31, 92) + Me.LVTech.Name = "LVTech" + Me.LVTech.Size = New System.Drawing.Size(435, 202) + Me.LVTech.TabIndex = 30 + Me.LVTech.UseCompatibleStateImageBehavior = False + Me.LVTech.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Technologies" + Me.ColumnHeader1.Width = 420 + ' + 'Tabs + ' + Me.Tabs.Controls.Add(Me.tabMain) + Me.Tabs.Controls.Add(Me.tabListItems) + Me.Tabs.Controls.Add(Me.tabTechnologies) + Me.Tabs.Location = New System.Drawing.Point(12, 24) + Me.Tabs.Name = "Tabs" + Me.Tabs.SelectedIndex = 0 + Me.Tabs.Size = New System.Drawing.Size(505, 387) + Me.Tabs.TabIndex = 35 + ' + 'tabMain + ' + Me.tabMain.Controls.Add(Me.PnFile) + Me.tabMain.Location = New System.Drawing.Point(4, 22) + Me.tabMain.Name = "tabMain" + Me.tabMain.Padding = New System.Windows.Forms.Padding(3) + Me.tabMain.Size = New System.Drawing.Size(497, 361) + Me.tabMain.TabIndex = 0 + Me.tabMain.Text = "Main" + Me.tabMain.UseVisualStyleBackColor = True + ' + 'PnFile + ' + Me.PnFile.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PnFile.Controls.Add(Me.Label6) + Me.PnFile.Controls.Add(Me.Label5) + Me.PnFile.Controls.Add(Me.txtPulleyGearRatio) + Me.PnFile.Controls.Add(Me.txtPulleyGearEfficiency) + Me.PnFile.Controls.Add(Me.LbIDhelp) + Me.PnFile.Controls.Add(Me.BtBrowse) + Me.PnFile.Controls.Add(Me.CbType) + Me.PnFile.Controls.Add(Me.TbID) + Me.PnFile.Controls.Add(Me.TbPath) + Me.PnFile.Controls.Add(Me.Label2) + Me.PnFile.Controls.Add(Me.Label3) + Me.PnFile.Controls.Add(Me.Label1) + Me.PnFile.Location = New System.Drawing.Point(16, 55) + Me.PnFile.Name = "PnFile" + Me.PnFile.Size = New System.Drawing.Size(435, 231) + Me.PnFile.TabIndex = 29 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(242, 109) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(98, 13) + Me.Label6.TabIndex = 34 + Me.Label6.Text = "Pulley Gear Ratio : " + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(16, 109) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(119, 13) + Me.Label5.TabIndex = 33 + Me.Label5.Text = "Pulley Gear Efficiency : " + ' + 'txtPulleyGearRatio + ' + Me.txtPulleyGearRatio.Location = New System.Drawing.Point(346, 105) + Me.txtPulleyGearRatio.Name = "txtPulleyGearRatio" + Me.txtPulleyGearRatio.Size = New System.Drawing.Size(72, 20) + Me.txtPulleyGearRatio.TabIndex = 32 + ' + 'txtPulleyGearEfficiency + ' + Me.txtPulleyGearEfficiency.Location = New System.Drawing.Point(136, 105) + Me.txtPulleyGearEfficiency.Name = "txtPulleyGearEfficiency" + Me.txtPulleyGearEfficiency.Size = New System.Drawing.Size(76, 20) + Me.txtPulleyGearEfficiency.TabIndex = 31 + ' + 'tabListItems + ' + Me.tabListItems.Controls.Add(Me.pnlListItems) + Me.tabListItems.Location = New System.Drawing.Point(4, 22) + Me.tabListItems.Name = "tabListItems" + Me.tabListItems.Padding = New System.Windows.Forms.Padding(3) + Me.tabListItems.Size = New System.Drawing.Size(497, 361) + Me.tabListItems.TabIndex = 1 + Me.tabListItems.Text = "ListItems" + Me.tabListItems.UseVisualStyleBackColor = True + ' + 'pnlListItems + ' + Me.pnlListItems.Controls.Add(Me.dgvInputs) + Me.pnlListItems.Controls.Add(Me.btnConsumerRemove) + Me.pnlListItems.Controls.Add(Me.btnConsumerAdd) + Me.pnlListItems.Location = New System.Drawing.Point(19, 31) + Me.pnlListItems.Name = "pnlListItems" + Me.pnlListItems.Size = New System.Drawing.Size(452, 324) + Me.pnlListItems.TabIndex = 35 + ' + 'dgvInputs + ' + Me.dgvInputs.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvInputs.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.ItemName, Me.ItemValue}) + Me.dgvInputs.Location = New System.Drawing.Point(3, 42) + Me.dgvInputs.Name = "dgvInputs" + Me.dgvInputs.Size = New System.Drawing.Size(432, 268) + Me.dgvInputs.TabIndex = 31 + ' + 'ItemName + ' + Me.ItemName.HeaderText = "ItemName" + Me.ItemName.Name = "ItemName" + Me.ItemName.Width = 289 + ' + 'ItemValue + ' + Me.ItemValue.HeaderText = "ItemValue" + Me.ItemValue.Name = "ItemValue" + ' + 'btnConsumerRemove + ' + Me.btnConsumerRemove.Enabled = False + Me.btnConsumerRemove.Image = Global.VECTO.My.Resources.Resources.minus_circle_icon + Me.btnConsumerRemove.Location = New System.Drawing.Point(406, 13) + Me.btnConsumerRemove.Name = "btnConsumerRemove" + Me.btnConsumerRemove.Size = New System.Drawing.Size(29, 23) + Me.btnConsumerRemove.TabIndex = 34 + Me.btnConsumerRemove.UseVisualStyleBackColor = True + ' + 'btnConsumerAdd + ' + Me.btnConsumerAdd.Image = Global.VECTO.My.Resources.Resources.plus_circle_icon + Me.btnConsumerAdd.Location = New System.Drawing.Point(353, 13) + Me.btnConsumerAdd.Name = "btnConsumerAdd" + Me.btnConsumerAdd.Size = New System.Drawing.Size(29, 23) + Me.btnConsumerAdd.TabIndex = 33 + Me.btnConsumerAdd.UseVisualStyleBackColor = True + ' + 'tabTechnologies + ' + Me.tabTechnologies.Controls.Add(Me.PnTech) + Me.tabTechnologies.Controls.Add(Me.LVTech) + Me.tabTechnologies.Location = New System.Drawing.Point(4, 22) + Me.tabTechnologies.Name = "tabTechnologies" + Me.tabTechnologies.Size = New System.Drawing.Size(497, 361) + Me.tabTechnologies.TabIndex = 2 + Me.tabTechnologies.Text = "Technologies" + Me.tabTechnologies.UseVisualStyleBackColor = True + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(385, 440) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 25 + ' + 'F_VEH_AuxDlog + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(543, 481) + Me.Controls.Add(Me.Tabs) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_VEH_AuxDlog" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Auxiliary" + Me.PnTech.ResumeLayout(False) + Me.PnTech.PerformLayout() + Me.Tabs.ResumeLayout(False) + Me.tabMain.ResumeLayout(False) + Me.PnFile.ResumeLayout(False) + Me.PnFile.PerformLayout() + Me.tabListItems.ResumeLayout(False) + Me.pnlListItems.ResumeLayout(False) + CType(Me.dgvInputs, System.ComponentModel.ISupportInitialize).EndInit() + Me.tabTechnologies.ResumeLayout(False) + Me.TableLayoutPanel1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents TbID As System.Windows.Forms.TextBox + Friend WithEvents TbPath As System.Windows.Forms.TextBox + Friend WithEvents BtBrowse As System.Windows.Forms.Button + Friend WithEvents CbType As System.Windows.Forms.ComboBox + Friend WithEvents LbIDhelp As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents CbTech As System.Windows.Forms.ComboBox + Friend WithEvents PnTech As System.Windows.Forms.Panel + Friend WithEvents LVTech As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents Tabs As System.Windows.Forms.TabControl + Friend WithEvents tabMain As System.Windows.Forms.TabPage + Friend WithEvents tabListItems As System.Windows.Forms.TabPage + Friend WithEvents btnConsumerRemove As System.Windows.Forms.Button + Friend WithEvents btnConsumerAdd As System.Windows.Forms.Button + Friend WithEvents dgvInputs As System.Windows.Forms.DataGridView + Friend WithEvents ItemName As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents ItemValue As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents tabTechnologies As System.Windows.Forms.TabPage + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents PnFile As System.Windows.Forms.Panel + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents txtPulleyGearRatio As System.Windows.Forms.TextBox + Friend WithEvents txtPulleyGearEfficiency As System.Windows.Forms.TextBox + Friend WithEvents pnlListItems As System.Windows.Forms.Panel + +End Class diff --git a/VECTO/GUI/F_VEH_AuxDlog.resx b/VECTO/GUI/F_VEH_AuxDlog.resx new file mode 100644 index 0000000000000000000000000000000000000000..d666c55242dcdb49020fcb5f9dc97802ecd652c1 --- /dev/null +++ b/VECTO/GUI/F_VEH_AuxDlog.resx @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="ItemName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> + <metadata name="ItemValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <value>True</value> + </metadata> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_VEH_AuxDlog.vb b/VECTO/GUI/F_VEH_AuxDlog.vb new file mode 100644 index 0000000000000000000000000000000000000000..068a2ba1f820f54776a087be151a238edda48e60 --- /dev/null +++ b/VECTO/GUI/F_VEH_AuxDlog.vb @@ -0,0 +1,387 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms +Imports System.Collections.Generic +Imports VectoAuxiliaries.Hvac + +''' <summary> +''' Aux Config Editor (Job Editor sub-dialog) +''' </summary> +''' <remarks></remarks> +Public Class F_VEH_AuxDlog + + Public VehPath As String = "" + + Public Property ListItems As New Dictionary(Of String, Single) + + + 'New instance + Public Sub New() + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Me.CbType.Items.Add("Fan") + Me.CbType.Items.Add("Steering pump") + Me.CbType.Items.Add("HVAC") + Me.CbType.Items.Add("Electric System") + + Me.PnFile.Enabled = Not Cfg.DeclMode + Me.PnTech.Enabled = Cfg.DeclMode + + + End Sub + + 'Initialise form + Private Sub F_VEH_AuxDlog_Load(sender As Object, e As System.EventArgs) Handles Me.Load + Me.Text = CbType.Text + End Sub + + + 'Set generic values for Declaration mode + Private Sub DeclInit() + Dim txt As String + Dim kv As KeyValuePair(Of String, Dictionary(Of tMission, Single)) + + Me.CbTech.Items.Clear() + + 'Added this section to enable or disable the new controls for Post file version 2 - TB 25/9/14 + Tabs.TabPages.Clear() + Tabs.TabPages.Add(tabMain) + + Select Case TbID.Text + + Case sKey.AUX.ElecSys.ToString() + tabListItems.Text = "Electrical Consumers" + Tabs.TabPages.Add(tabListItems) + + Case sKey.AUX.PneumSys.ToString() + tabListItems.Text = "Pneumatic Consumers" + Tabs.TabPages.Add(tabListItems) + + Case sKey.AUX.HVAC.ToString() + tabListItems.Text = "Map Inputs" + Tabs.TabPages.Add(tabListItems) + + Case sKey.AUX.Fan + Tabs.TabPages.Add(tabTechnologies) + + Case sKey.AUX.SteerPump + Tabs.TabPages.Add(tabTechnologies) + + End Select + + Select Case TbID.Text + Case sKey.AUX.Fan + For Each txt In Declaration.AuxTechs(tAux.Fan) + Me.CbTech.Items.Add(txt) + Next + + Case sKey.AUX.SteerPump + For Each txt In Declaration.AuxTechs(tAux.SteerPump) + Me.CbTech.Items.Add(txt) + Next + + Case sKey.AUX.HVAC + For Each txt In Declaration.AuxTechs(tAux.HVAC) + Me.CbTech.Items.Add(txt) + Next + Me.CbTech.SelectedIndex = 0 + + Case sKey.AUX.ElecSys + For Each txt In Declaration.AuxTechs(tAux.ElectricSys) + Me.CbTech.Items.Add(txt) + Next + Me.CbTech.SelectedIndex = 0 + + + Case sKey.AUX.PneumSys + For Each txt In Declaration.AuxTechs(tAux.PneumSys) + Me.CbTech.Items.Add(txt) + Next + Me.CbTech.SelectedIndex = 0 + + End Select + + + If TbID.Text = sKey.AUX.ElecSys Then + + Me.LVTech.Items.Clear() + For Each kv In Declaration.AuxESpower + Me.LVTech.Items.Add(kv.Key) + Next + Me.LVTech.Visible = True + + 'TB Removed for newer design of existing form 25/9/14 + ' Me.Height = 457 + + Else + + Me.LVTech.Visible = False + 'TB Removed for newer design of existing form 25/9/14 + ' Me.Height = 220 + + End If + + End Sub + + 'Save and close + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + 'Cancel + 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 form. Check if form is complete and valid + Private Sub F_VEH_AuxDlog_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If e.CloseReason <> CloseReason.WindowsShutDown And Me.DialogResult <> Windows.Forms.DialogResult.Cancel Then + + If Trim(Me.TbID.Text) = "" Or Trim(Me.CbType.Text) = "" Then + MsgBox("Form is incomplete!", MsgBoxStyle.Critical) + e.Cancel = True + End If + + If Me.TbID.Text.Contains(",") Or Me.CbType.Text.Contains(",") Or Me.TbPath.Text.Contains(",") Then + MsgBox("',' is no valid character!", MsgBoxStyle.Critical) + e.Cancel = True + End If + + If Cfg.DeclMode Then + + 'Old Tech only seems to apply to electricals + If Me.CbTech.Text = "" AndAlso sKey.AUX.ElecSys.ToString() = TbID.Text Then + MsgBox("Form is incomplete!", MsgBoxStyle.Critical) + e.Cancel = True + End If + + Else + + 'Engineering Mode + If Trim(Me.TbPath.Text) = "" Then + MsgBox("Form is incomplete!", MsgBoxStyle.Critical) + e.Cancel = True + End If + + 'Determin specific Validation based on type + Select Case TbID.Text + + Case sKey.AUX.HVAC + e.Cancel = Not ValidateHVAC() + + + + End Select + + + + End If + + End If + End Sub + + ''' <summary> + ''' HVAC VALIDATION + ''' </summary> + ''' <param name="message">Returns a string with any errors</param> + ''' <returns></returns> + ''' <remarks></remarks> + Private Function ValidateHVAC() As Boolean + + Dim message As String = String.Empty + + 'Validate Pulley + If Not ValidatePulley(message) Then + MessageBox.Show(message) + Return False + End If + + 'Validate Inputs + If Not ValidateHVACInputs(message) Then + MessageBox.Show(message) + Return False + End If + + Return True + + End Function + + ''' <summary> + ''' HVAC and Alternators use pulleys, this routine checks them + ''' </summary> + ''' <param name="message"></param> + ''' <returns></returns> + ''' <remarks></remarks> + Private Function ValidatePulley(ByRef message As String) As Boolean + + Dim pulleyEfficiency As String = txtPulleyGearEfficiency.Text.Trim + Dim pulleyGearRatio As String = txtPulleyGearRatio.Text.Trim + + 'Values present + If (pulleyEfficiency.Length = 0) OrElse (pulleyGearRatio.Length = 0) Then + message = "Please fill in the pulley values in the main tab." + Return False + End If + + 'Values numeric + If Not IsNumeric(pulleyEfficiency) OrElse Not IsNumeric(pulleyGearRatio) Then + message = "One of the pulley values on the main tab is not a numeric value." + Return False + End If + + 'Value Ranges + Dim efficiencyValue As Single = CType(pulleyEfficiency, Single) + Dim gearRatio As Single = CType(pulleyGearRatio, Single) + + Const TooLowRatio As Single = 0.0 + Const TooHighRatio As Single = 6.0 + Const TooLowEfficiency As Single = 0 + Const TooHighEfficiency As Single = 1 + + 'Efficiency check + If (efficiencyValue <= TooLowEfficiency) OrElse (efficiencyValue >= TooHighEfficiency) Then + message = "Efficiency value must be greater than 0 and less than 1" + Return False + End If + + 'Ratio Check + If (gearRatio <= TooLowRatio) OrElse (gearRatio >= TooHighRatio) Then + message = "Pulley gear ratio value must be greater than 0 and less than 6" + Return False + End If + + message = String.Empty + Return True + + End Function + + ''' <summary> + ''' HVAC Require the correct number of inputs, for this we need to instantiate the HVACLoad Demand + ''' Using the HVACMap lookup Map File + ''' </summary> + ''' <param name="message"></param> + ''' <returns></returns> + ''' <remarks></remarks> + Private Function ValidateHVACInputs(ByRef message As String) As Boolean + + 'Validate Number of inputs + If dgvInputs.Rows.Count < 2 Then + message = "No Inputs are available please select the lookup map on the Main tab" + Return False + End If + + Return True + + End Function + + 'Browse for .vaux files + Private Sub BtBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtBrowse.Click + + + If fbAUX.OpenDialog(fFileRepl(Me.TbPath.Text, VehPath)) Then Me.TbPath.Text = fFileWoDir(fbAUX.Files(0), VehPath) + + If (TbID.Text = sKey.AUX.HVAC AndAlso Me.TbPath.Text.Length <> 0) Then + Dim frmHVAC As New VectoAuxiliaries.UI.F_HVAC(Me.TbPath.Text) + + 'If we have results then populate the inputs tab + If (frmHVAC.ShowDialog() = Windows.Forms.DialogResult.OK) Then + + dgvInputs.Rows.Clear() + + ListItems.Clear() + + For Each item As KeyValuePair(Of String, String) In frmHVAC.Inputs + + Dim row As DataGridViewRow = dgvInputs.Rows(dgvInputs.Rows.Add()) + row.Cells(0).Value = item.Key + row.Cells(1).Value = item.Value + + + ListItems.Add(item.Key, item.Value) + + Next + + + End If + + + End If + + + End Sub + + 'Update ID when Aux Type was changed + Private Sub CbType_TextChanged(sender As Object, e As System.EventArgs) Handles CbType.TextChanged + + If Me.CbType.Text = "" Then + Me.TbID.Text = "" + Else + If Cfg.DeclMode Then + Select Case Me.CbType.SelectedIndex + Case 0 + Me.TbID.Text = sKey.AUX.Fan + Case 1 + Me.TbID.Text = sKey.AUX.SteerPump + + Case Else '2 + Me.TbID.Text = sKey.AUX.HVAC + End Select + Else + Me.TbID.Text = Trim(UCase(Me.CbType.Text.Substring(0, CInt(Math.Min(Me.CbType.Text.Length, 3))))) + End If + End If + + + + + End Sub + + 'Update help label if ID was changed + Private Sub TbID_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbID.TextChanged + + DeclInit() + + If Trim(Me.TbID.Text) = "" Or Cfg.DeclMode Then + Me.LbIDhelp.Text = "" + Else + Me.LbIDhelp.Text = "Header in Driving cycle: <AUX_" & Trim(Me.TbID.Text) & ">" + End If + + End Sub + + + Private Sub btnConsumerAdd_Click(sender As Object, e As EventArgs) Handles btnConsumerAdd.Click + + End Sub + + + Public Sub ClearAllValues(Optional clearTypes As Boolean = False) + + If (clearTypes) Then + Me.CbType.SelectedIndex = -1 + Me.CbType.Text = "" + Me.TbID.Text = "" + End If + + Me.TbPath.Text = "" + Me.txtPulleyGearEfficiency.Text = String.Empty + Me.txtPulleyGearRatio.Text = String.Empty + Me.dgvInputs.ClearSelection() + Me.LVTech.Clear() + + End Sub + +End Class diff --git a/VECTO/GUI/F_VEH_Axle.Designer.vb b/VECTO/GUI/F_VEH_Axle.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..d42bec507fb1b662f5ed093e44dd10a9c3b68f5a --- /dev/null +++ b/VECTO/GUI/F_VEH_Axle.Designer.vb @@ -0,0 +1,309 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_VEH_Axle + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.TbAxleShare = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.TbRRC = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.TbFzISO = New System.Windows.Forms.TextBox() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.CbTwinT = New System.Windows.Forms.CheckBox() + Me.PnAxle = New System.Windows.Forms.Panel() + Me.TbI_wheels = New System.Windows.Forms.TextBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.Label32 = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.CbWheels = New System.Windows.Forms.ComboBox() + Me.TableLayoutPanel1.SuspendLayout() + Me.PnAxle.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(250, 217) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 4 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(7, 10) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(96, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Relative Axle Load" + ' + 'TbAxleShare + ' + Me.TbAxleShare.Location = New System.Drawing.Point(109, 8) + Me.TbAxleShare.Name = "TbAxleShare" + Me.TbAxleShare.Size = New System.Drawing.Size(53, 20) + Me.TbAxleShare.TabIndex = 0 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(168, 11) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(16, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "[-]" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(41, 108) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(51, 13) + Me.Label3.TabIndex = 1 + Me.Label3.Text = "RRC ISO" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(188, 108) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(16, 13) + Me.Label4.TabIndex = 1 + Me.Label4.Text = "[-]" + ' + 'TbRRC + ' + Me.TbRRC.Location = New System.Drawing.Point(98, 105) + Me.TbRRC.Name = "TbRRC" + Me.TbRRC.Size = New System.Drawing.Size(84, 20) + Me.TbRRC.TabIndex = 2 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(53, 154) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(39, 13) + Me.Label5.TabIndex = 1 + Me.Label5.Text = "Fz ISO" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(188, 154) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(21, 13) + Me.Label6.TabIndex = 1 + Me.Label6.Text = "[N]" + ' + 'TbFzISO + ' + Me.TbFzISO.Location = New System.Drawing.Point(98, 151) + Me.TbFzISO.Name = "TbFzISO" + Me.TbFzISO.Size = New System.Drawing.Size(84, 20) + Me.TbFzISO.TabIndex = 3 + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(223, 108) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(146, 13) + Me.Label9.TabIndex = 1 + Me.Label9.Text = "RRC according to ISO 28580" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(223, 154) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(167, 26) + Me.Label10.TabIndex = 1 + Me.Label10.Text = "Test load according to ISO 28580" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "(85% of max. tyre load capacity)" + ' + 'CbTwinT + ' + Me.CbTwinT.AutoSize = True + Me.CbTwinT.Location = New System.Drawing.Point(255, 19) + Me.CbTwinT.Name = "CbTwinT" + Me.CbTwinT.Size = New System.Drawing.Size(78, 17) + Me.CbTwinT.TabIndex = 1 + Me.CbTwinT.Text = "Twin Tyres" + Me.CbTwinT.UseVisualStyleBackColor = True + ' + 'PnAxle + ' + Me.PnAxle.Controls.Add(Me.TbI_wheels) + Me.PnAxle.Controls.Add(Me.Label1) + Me.PnAxle.Controls.Add(Me.Label7) + Me.PnAxle.Controls.Add(Me.Label2) + Me.PnAxle.Controls.Add(Me.Label32) + Me.PnAxle.Controls.Add(Me.TbAxleShare) + Me.PnAxle.Location = New System.Drawing.Point(9, 49) + Me.PnAxle.Name = "PnAxle" + Me.PnAxle.Size = New System.Drawing.Size(394, 39) + Me.PnAxle.TabIndex = 5 + ' + 'TbI_wheels + ' + Me.TbI_wheels.Location = New System.Drawing.Point(287, 8) + Me.TbI_wheels.Name = "TbI_wheels" + Me.TbI_wheels.Size = New System.Drawing.Size(57, 20) + Me.TbI_wheels.TabIndex = 26 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(206, 11) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(75, 13) + Me.Label7.TabIndex = 25 + Me.Label7.Text = "Wheels Inertia" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Location = New System.Drawing.Point(350, 11) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(36, 13) + Me.Label32.TabIndex = 27 + Me.Label32.Text = "[kgm²]" + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(6, 20) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(43, 13) + Me.Label8.TabIndex = 6 + Me.Label8.Text = "Wheels" + ' + 'CbWheels + ' + Me.CbWheels.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.CbWheels.FormattingEnabled = True + Me.CbWheels.Location = New System.Drawing.Point(55, 17) + Me.CbWheels.Name = "CbWheels" + Me.CbWheels.Size = New System.Drawing.Size(176, 21) + Me.CbWheels.TabIndex = 7 + ' + 'F_VEH_Axle + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(408, 258) + Me.Controls.Add(Me.CbWheels) + Me.Controls.Add(Me.Label8) + Me.Controls.Add(Me.PnAxle) + Me.Controls.Add(Me.CbTwinT) + Me.Controls.Add(Me.TbFzISO) + Me.Controls.Add(Me.Label6) + Me.Controls.Add(Me.TbRRC) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.Label10) + Me.Controls.Add(Me.Label5) + Me.Controls.Add(Me.Label9) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_VEH_Axle" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Axle configuration" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.PnAxle.ResumeLayout(False) + Me.PnAxle.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TbAxleShare As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents TbRRC As System.Windows.Forms.TextBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents TbFzISO As System.Windows.Forms.TextBox + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents CbTwinT As System.Windows.Forms.CheckBox + Friend WithEvents PnAxle As System.Windows.Forms.Panel + Friend WithEvents TbI_wheels As System.Windows.Forms.TextBox + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label32 As System.Windows.Forms.Label + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents CbWheels As System.Windows.Forms.ComboBox + +End Class diff --git a/VECTO/GUI/F_VEH_Axle.resx b/VECTO/GUI/F_VEH_Axle.resx new file mode 100644 index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04 --- /dev/null +++ b/VECTO/GUI/F_VEH_Axle.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_VEH_Axle.vb b/VECTO/GUI/F_VEH_Axle.vb new file mode 100644 index 0000000000000000000000000000000000000000..19bb2b25cddf8fa9aaa0429cf49bdf46554293e9 --- /dev/null +++ b/VECTO/GUI/F_VEH_Axle.vb @@ -0,0 +1,94 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms + +''' <summary> +''' Axle Config Editor (Vehicle Editor sub-dialog) +''' </summary> +''' <remarks></remarks> +Public Class F_VEH_Axle + + Public Sub New() + Dim w As String + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Me.CbWheels.Items.Add("-") + For Each w In Declaration.WheelsList + Me.CbWheels.Items.Add(w) + Next + + + + End Sub + + Public Sub Clear() + Me.CbTwinT.Checked = False + Me.TbAxleShare.Text = "" + Me.TbI_wheels.Text = "" + Me.TbRRC.Text = "" + Me.TbFzISO.Text = "" + Me.CbWheels.SelectedIndex = 0 + End Sub + + 'Initialise + Private Sub F_VEH_Axle_Load(sender As Object, e As System.EventArgs) Handles Me.Load + Me.PnAxle.Enabled = Not Cfg.DeclMode + End Sub + + 'Save and close + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + + If Not Cfg.DeclMode Then + If Not IsNumeric(Me.TbAxleShare.Text) OrElse Trim(Me.TbAxleShare.Text) = "" Then + MsgBox("Weight input is not valid!") + Exit Sub + End If + End If + + If Not IsNumeric(Me.TbRRC.Text) OrElse Trim(Me.TbRRC.Text) = "" Then + MsgBox("RRC input is not valid!") + Exit Sub + End If + + If Not IsNumeric(Me.TbFzISO.Text) OrElse Trim(Me.TbFzISO.Text) = "" Then + MsgBox("Fz ISO input is not valid!") + Exit Sub + End If + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub CbWheels_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbWheels.SelectedIndexChanged + Dim inertia As Single + If Cfg.DeclMode Then + inertia = Declaration.WheelsInertia(Me.CbWheels.Text) + If inertia < 0 Then + Me.TbI_wheels.Text = "-" + Else + Me.TbI_wheels.Text = inertia + End If + End If + End Sub + + 'Cancel + 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 + + + + +End Class diff --git a/VECTO/GUI/F_Welcome.Designer.vb b/VECTO/GUI/F_Welcome.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..4a3fe6396abb68c2a79a809670a60165e6ca5d25 --- /dev/null +++ b/VECTO/GUI/F_Welcome.Designer.vb @@ -0,0 +1,105 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ +Partial Class F_Welcome + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + <System.Diagnostics.DebuggerNonUserCode()> _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + <System.Diagnostics.DebuggerStepThrough()> _ + Private Sub InitializeComponent() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.Button1 = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(239, 152) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Close" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(12, 18) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(77, 16) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Welcome!" + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(12, 47) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(294, 37) + Me.Button1.TabIndex = 2 + Me.Button1.Text = "Open Release Notes (pdf)" + Me.Button1.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Location = New System.Drawing.Point(12, 90) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(294, 37) + Me.Button2.TabIndex = 2 + Me.Button2.Text = "Open User Manual (html)" + Me.Button2.UseVisualStyleBackColor = True + ' + 'F_Welcome + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(318, 187) + Me.Controls.Add(Me.Button2) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.Button1) + Me.Controls.Add(Me.Label1) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "F_Welcome" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "F_Welcome" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents Button2 As System.Windows.Forms.Button + +End Class diff --git a/VECTO/GUI/F_Welcome.resx b/VECTO/GUI/F_Welcome.resx new file mode 100644 index 0000000000000000000000000000000000000000..1af7de150c99c12dd67a509fe57c10d63e4eeb04 --- /dev/null +++ b/VECTO/GUI/F_Welcome.resx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file diff --git a/VECTO/GUI/F_Welcome.vb b/VECTO/GUI/F_Welcome.vb new file mode 100644 index 0000000000000000000000000000000000000000..df76af6a14c7fa0bd17495f20280e8e3f58ec5ea --- /dev/null +++ b/VECTO/GUI/F_Welcome.vb @@ -0,0 +1,47 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Windows.Forms + +''' <summary> +''' Welcome screen. Shows only on the first time application start +''' </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 + + 'Init + Private Sub F_Welcome_Load(sender As Object, e As System.EventArgs) Handles Me.Load + Me.Text = "VECTO " & VECTOvers + 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 +End Class diff --git a/VECTO/GUI/GUI_Subs.vb b/VECTO/GUI/GUI_Subs.vb new file mode 100644 index 0000000000000000000000000000000000000000..3969a4e064466027a454bfc0f46fdc9fc8196fa3 --- /dev/null +++ b/VECTO/GUI/GUI_Subs.vb @@ -0,0 +1,281 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Methods for GUI interaction +''' </summary> +''' <remarks></remarks> +Module GUI_Subs + + Public test As Integer = 0 + +#Region "GUI control via background worker" + + 'Status Message => Msg-Listview + Public Sub WorkerMsg(ByVal ID As tMsgID, ByVal Msg As String, ByVal Source As String, Optional ByVal Link As String = "") + Dim WorkProg As New cWorkProg(tWorkMsgType.StatusListBox) + WorkProg.ID = ID + Select Case ID + Case tMsgID.Err + MSGerror += 1 + Case tMsgID.Warn + MSGwarn += 1 + End Select + WorkProg.Msg = Msg + WorkProg.Source = Source + WorkProg.Link = Link + Try + VECTOworker.ReportProgress(0, WorkProg) + Catch ex As Exception + GUImsg(ID, Msg) + End Try + End Sub + + 'Status => Statusbar + Public Sub WorkerStatus(ByVal Msg As String) + Dim WorkProg As New cWorkProg(tWorkMsgType.StatusBar) + WorkProg.Msg = Msg + VECTOworker.ReportProgress(0, WorkProg) + End Sub + + 'Job status => Job listview + Public Sub WorkerJobStatus(ByVal JobIndex As Int16, ByVal Msg As String, ByVal Status As tJobStatus) + Dim WorkProg As cWorkProg + WorkProg = New cWorkProg(tWorkMsgType.JobStatus) + WorkProg.FileIndex = JobIndex + WorkProg.Msg = Msg + WorkProg.Status = Status + VECTOworker.ReportProgress(0, WorkProg) + End Sub + + 'Cycle status => Cycle listview + Public Sub WorkerCycleStatus(ByVal CycleIndex As Int16, ByVal Msg As String) + Dim WorkProg As cWorkProg + WorkProg = New cWorkProg(tWorkMsgType.CycleStatus) + WorkProg.FileIndex = CycleIndex + WorkProg.Msg = Msg + VECTOworker.ReportProgress(0, WorkProg) + End Sub + + 'Worker Progress => Progbar + Public Sub WorkerProgJobEnd(ByVal Prog As Int16) + Dim WorkProg As New cWorkProg(tWorkMsgType.ProgBars) + VECTOworker.ReportProgress(Prog, WorkProg) + End Sub + + 'Progbar set to Continuous + Public Sub WorkerProgInit() + Dim WorkProg As New cWorkProg(tWorkMsgType.InitProgBar) + VECTOworker.ReportProgress(0, WorkProg) + End Sub + + 'Abort + Public Sub WorkerAbort() + Dim WorkProg As New cWorkProg(tWorkMsgType.Abort) + VECTOworker.ReportProgress(0, WorkProg) + End Sub + + + +#End Region + +#Region "Direct GUI control - Cannot be called by background worker!" + + 'Status message + Public Sub GUImsg(ByVal ID As tMsgID, ByVal Msg As String) + F_MAINForm.MSGtoForm(ID, Msg, "", "") + End Sub + + 'Statusbar + Public Sub Status(ByVal txt As String) + F_MAINForm.ToolStripLbStatus.Text = txt + End Sub + + 'Status form reset + Public Sub ClearMSG() + F_MAINForm.LvMsg.Items.Clear() + End Sub + +#End Region + + 'Class used to pass Messages from BackgroundWorker to GUI + Public Class cWorkProg + Private MyTarget As tWorkMsgType + Private MyID As tMsgID + Private MyMsg As String + Private MyFileIndex As Int16 + Private MySource As String + Private MyStatus As tJobStatus + Public Link As String + + Public Sub New(ByVal MsgTarget As tWorkMsgType) + MyTarget = MsgTarget + MySource = "" + MyStatus = tJobStatus.Undef + Link = "" + End Sub + + Public Property Status As tJobStatus + Get + Return MyStatus + End Get + Set(value As tJobStatus) + MyStatus = value + End Set + End Property + + + Public Property Source As String + Get + Return MySource + End Get + Set(value As String) + MySource = value + End Set + End Property + + Public Property ID() As tMsgID + Get + Return MyID + End Get + Set(ByVal value As tMsgID) + MyID = value + End Set + End Property + + Public Property Msg() As String + Get + Return MyMsg + End Get + Set(ByVal value As String) + MyMsg = value + End Set + End Property + + Public ReadOnly Property Target() As tWorkMsgType + Get + Return MyTarget + End Get + End Property + + Public Property FileIndex() As Int16 + Get + Return MyFileIndex + End Get + Set(ByVal value As Int16) + MyFileIndex = value + End Set + End Property + + + End Class + + 'Progress bar control + Public Class cProgBarCtrl + Public ProgOverallStartInt As Integer = -1 + Public PgroOverallEndInt As Integer = -1 + Public ProgJobInt As Integer = -1 + Public ProgLock As Boolean = False + End Class + +#Region "Textbox text conversion for file open/save operations" + + 'Text-to-number + Public Function fTextboxToNumString(ByVal txt As String) As String + If Not IsNumeric(txt) Then + Return "0" + Else + Return txt + End If + End Function + + 'Empty text to writable placeholder + Public Function fStringOrDummySet(ByVal txt As String) As String + If txt = "" Then + Return sKey.EmptyString + Else + Return txt + End If + End Function + + 'Placeholder to empty string + Public Function fStringOrDummyGet(ByVal txt As String) As String + If Trim(UCase(txt)) = sKey.EmptyString Then + Return "" + Else + Return txt + End If + End Function + +#End Region + + 'Open File with software defined in Config + Public Function FileOpenAlt(ByVal file As String) As Boolean + Dim PSI As New ProcessStartInfo + + If Not IO.File.Exists(file) Then Return False + + PSI.FileName = Cfg.OpenCmd + PSI.Arguments = ChrW(34) & file & ChrW(34) + Try + Process.Start(PSI) + Return True + Catch ex As Exception + Return False + End Try + + End Function + + Public Function WrongMode() As Integer + + If Cfg.DeclMode Then + + Select Case MsgBox("This file was created in Engineering Mode! Opening in Declaration Mode will overwrite some parameters with generic values." & vbCrLf & vbCrLf & _ + "Do you want to switch to Engineering Mode?" & vbCrLf & vbCrLf & _ + "[Yes] Switch mode and open file" & vbCrLf & _ + "[No] Open file without changing mode" & vbCrLf & _ + "[Cancel] Abort opening file" _ + , MsgBoxStyle.YesNoCancel, "Warning") + Case MsgBoxResult.Yes + Return 1 + + Case (MsgBoxResult.No) + Return 0 + + Case Else + Return -1 + + End Select + + Else + + Select Case MsgBox("This file was created in Declaration Mode! For use in Engineering Mode missing parameters must be defined." & vbCrLf & vbCrLf & _ + "Do you want to switch to Declaration Mode?" & vbCrLf & vbCrLf & _ + "[Yes] Switch mode and open file" & vbCrLf & _ + "[No] Open file without changing mode" & vbCrLf & _ + "[Cancel] Abort opening file" _ + , MsgBoxStyle.YesNoCancel, "Warning") + Case MsgBoxResult.Yes + Return 1 + + Case (MsgBoxResult.No) + Return 0 + + Case Else + Return -1 + + End Select + + End If + + End Function + +End Module diff --git a/VECTO/Input Files/cAux.vb b/VECTO/Input Files/cAux.vb new file mode 100644 index 0000000000000000000000000000000000000000..5ce00d8d8c66d0b14c707bc73de7936d3386db67 --- /dev/null +++ b/VECTO/Input Files/cAux.vb @@ -0,0 +1,178 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Auxiliary +''' </summary> +''' <remarks></remarks> +Public Class cAux + + ''' <summary> + ''' Input file path (.vaux) + ''' </summary> + ''' <remarks></remarks> + Public Filepath As String + + ''' <summary> + ''' Transmission ratio to engine speed [-] + ''' </summary> + ''' <remarks></remarks> + Public TransRatio As Single + + ''' <summary> + ''' Efficiency to engine [-] + ''' </summary> + ''' <remarks></remarks> + Public EffToEng As Single + + ''' <summary> + ''' Efficiency auxiliary to supply [-] + ''' </summary> + ''' <remarks></remarks> + Public EffToSply As Single + + ''' <summary> + ''' Efficiency map + ''' </summary> + ''' <remarks>x= Auxiliary speed [rpm]; y= Supply power [kW]; z= Mechanical power [kW]. Note that the columns in the input file are different!</remarks> + Private EffMap As cDelaunayMap + + ''' <summary> + ''' New instance. Creates new efficiency map + ''' </summary> + ''' <remarks></remarks> + Public Sub New() + EffMap = New cDelaunayMap + End Sub + + ''' <summary> + ''' Read input file (.vaux) + ''' </summary> + ''' <returns>True if successful, else False.</returns> + ''' <remarks></remarks> + Public Function Readfile() As Boolean + Dim MsgSrc As String + Dim file As cFile_V3 + Dim line As String() + + MsgSrc = "Main/ReadInp/Aux" + + 'Open file - Abort if file not accessible + file = New cFile_V3 + If Not file.OpenRead(Filepath) Then + file = Nothing + WorkerMsg(tMsgID.Err, "Failed to open file (" & Filepath & ") !", MsgSrc) + Return False + End If + + 'Map reset + EffMap = New cDelaunayMap + + 'Abort if file is empty + If file.EndOfFile Then GoTo lbFileEndErr + + 'Read file + Try + + 'Transmission ration to engine rpm [-] + file.ReadLine() + If file.EndOfFile Then GoTo lbFileEndErr + line = file.ReadLine + TransRatio = CSng(line(0)) + + 'Efficiency to engine [-] + file.ReadLine() + If file.EndOfFile Then GoTo lbFileEndErr + line = file.ReadLine + EffToEng = CSng(line(0)) + + 'Efficiency auxiliary to supply [-] + file.ReadLine() + If file.EndOfFile Then GoTo lbFileEndErr + line = file.ReadLine + EffToSply = CSng(line(0)) + + 'Efficiency Map + file.ReadLine() + If file.EndOfFile Then GoTo lbFileEndErr + + 'Column 1 = Auxiliary speed [rpm] => X-axis + 'Column 2 = Mechanical power [kW] => Z-Axis (!) + 'Column 3 = Output power [kW] => Y-Axis (!) + + Do While Not file.EndOfFile + line = file.ReadLine + EffMap.AddPoints(CDbl(line(0)), CDbl(line(2)), CDbl(line(1))) + Loop + + 'Triangulate map + If Not EffMap.Triangulate Then + WorkerMsg(tMsgID.Err, "Aux Map is invalid! (Triangulation Error)", MsgSrc) + GoTo lbErr + End If + + Catch ex As Exception + + WorkerMsg(tMsgID.Err, "Error while reading aux file! (" & ex.Message & ")", MsgSrc) + GoTo lbErr + + End Try + + file.Close() + + Return True + + +lbFileEndErr: + + WorkerMsg(tMsgID.Err, "Unexpected end of file (aux)!", MsgSrc) + + +lbErr: + file.Close() + Return False + + + + End Function + + ''' <summary> + ''' Returns power demand for given engine speed and supply power + ''' </summary> + ''' <param name="nU">Engine speed [1/min]</param> + ''' <param name="Psupply">Supply power [kW] from driving cycle</param> + ''' <returns>Power demand [kW]</returns> + ''' <remarks></remarks> + Public Function Paux(ByVal nU As Single, ByVal Psupply As Single) As Single + + Dim nUaux As Single + Dim PsplyAux As Single + Dim PauxEff As Single + + nUaux = nU * TransRatio + PsplyAux = Psupply / EffToSply + + PauxEff = EffMap.Intpol(nUaux, PsplyAux) + + If EffMap.ExtrapolError Then + MODdata.ModErrors.AuxMapExtr = fFILE(Filepath, False) & ", U= " & nUaux & " [1/min], PsupplyAux= " & PsplyAux & " [kW]" + Return 0 + End If + + Return PauxEff / EffToEng + + End Function + + + + + +End Class diff --git a/VECTO/Input Files/cAuxEntry.vb b/VECTO/Input Files/cAuxEntry.vb new file mode 100644 index 0000000000000000000000000000000000000000..3335c8a8a76006daa06bb9f7a39fff4a4f690cc7 --- /dev/null +++ b/VECTO/Input Files/cAuxEntry.vb @@ -0,0 +1,24 @@ +Imports System.Collections.Generic + + Public Class cAuxEntry + Public Type As String + Public Path As cSubPath + Public TechStr As String = "" + + Public PulleyGearEfficiencyES As Single + Public PulleyGearRatioES As Single + Public PulleyGearEfficiencyPS As Single + Public PulleyGearRatioPS As Single + Public PulleyGearEfficiencyHVAC As Single + Public PulleyGearRatioHVAC As Single + + + Public ConsumerListES As List(Of VectoAuxiliaries.Electrics.ElectricalConsumer) + Public ConsumerListPS As List(Of VectoAuxiliaries.Pneumatics.PneumaticConsumer) + Public HVACMapInputs As Dictionary(Of String, Single) + + Public Sub New() + Path = New cSubPath + End Sub + + End Class \ No newline at end of file diff --git a/VECTO/Input Files/cDRI.vb b/VECTO/Input Files/cDRI.vb new file mode 100644 index 0000000000000000000000000000000000000000..d6ecf6fe1093479b4184b57d427e73bcb470cb76 --- /dev/null +++ b/VECTO/Input Files/cDRI.vb @@ -0,0 +1,942 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Driving cycle input file +''' </summary> +''' <remarks></remarks> +Public Class cDRI + + ''' <summary> + ''' Last index of driving cycle columns + ''' </summary> + ''' <remarks></remarks> + Public tDim As Integer + + ''' <summary> + ''' Dictionary holding all driving cycle columns. Key= Parameter-ID (enum), Value= parameter value per time step + ''' </summary> + ''' <remarks></remarks> + Public Values As Dictionary(Of tDriComp, List(Of Double)) + + ''' <summary> + ''' First time stamp in driving cycle + ''' </summary> + ''' <remarks></remarks> + Public t0 As Integer + + ''' <summary> + ''' Full filepath. Needs to be defined before calling ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public FilePath As String + + ''' <summary> + ''' True= Cycle includes time stamps. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Tvorg As Boolean + + ''' <summary> + ''' True= Cycle includes time vehicle speed. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Vvorg As Boolean + + ''' <summary> + ''' True= Cycle includes engine power. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Pvorg As Boolean + + ''' <summary> + ''' True= Cycle includes additional auxiliary power demand (not to be confused with auxiliary supply power). Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public PaddVorg As Boolean + + ''' <summary> + ''' True= Cycle includes engine speed. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Nvorg As Boolean + + ''' <summary> + ''' True= Cycle includes gear input. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Gvorg As Boolean + + ''' <summary> + ''' True= Cycle includes slope. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public GradVorg As Boolean + + ''' <summary> + ''' True= Cycle includes auxiliary supply power for at least one auxiliary. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public AuxDef As Boolean + + ''' <summary> + ''' Auxiliary supply power input. Key= Aux-ID, Value= Supply power [kW] per time step + ''' </summary> + ''' <remarks></remarks> + Public AuxComponents As Dictionary(Of String, List(Of Single)) + + ''' <summary> + ''' True= Cycle includes VairRes and VairBeta for side wind correction. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public VairVorg As Boolean + + ''' <summary> + ''' True= Cycle includes distance. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public Scycle As Boolean + + ''' <summary> + ''' True= Cycle includes slope. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Public VoglS As List(Of Double) + + ''' <summary> + ''' Reset all fields, etc. berfore loading new file. Called by ReadFile. + ''' </summary> + ''' <remarks></remarks> + Private Sub ResetMe() + Values = Nothing + PaddVorg = False + Tvorg = False + Vvorg = False + GradVorg = False + Nvorg = False + Gvorg = False + Pvorg = False + tDim = -1 + t0 = 1 'Default if no time steps are defined in driving cycle + AuxDef = False + AuxComponents = Nothing + VairVorg = False + Scycle = False + End Sub + + ''' <summary> + ''' Read driving cycle. FilePath must be defined before calling. + ''' </summary> + ''' <returns>True= File loaded successfully.</returns> + ''' <remarks></remarks> + Public Function ReadFile() As Boolean + Dim file As cFile_V3 + Dim line As String() + Dim s1 As Integer + Dim s As Integer + Dim txt As String + Dim Comp As tDriComp + Dim AuxComp As tAuxComp + Dim AuxID As String + Dim Svorg As Boolean = False + + Dim DRIcheck As Dictionary(Of tDriComp, Boolean) + Dim Spalten As Dictionary(Of tDriComp, Integer) + Dim sKV As KeyValuePair(Of tDriComp, Integer) + + Dim AuxSpalten As Dictionary(Of String, Integer) = Nothing + Dim Mvorg As Boolean = False + + + Dim MsgSrc As String + + + MsgSrc = "Main/ReadInp/DRI" + + + 'Reset + ResetMe() + + 'Abort if there's no file + If FilePath = "" OrElse Not IO.File.Exists(FilePath) Then + WorkerMsg(tMsgID.Err, "Cycle file not found (" & FilePath & ") !", MsgSrc) + Return False + End If + + 'EmComp Init + '...now in New() + + 'Open file + file = New cFile_V3 + If Not file.OpenRead(FilePath) Then + WorkerMsg(tMsgID.Err, "Failed to open file (" & FilePath & ") !", MsgSrc) + file = Nothing + Return False + End If + + DRIcheck = New Dictionary(Of tDriComp, Boolean) + DRIcheck.Add(tDriComp.t, False) + DRIcheck.Add(tDriComp.V, False) + DRIcheck.Add(tDriComp.Grad, False) + DRIcheck.Add(tDriComp.nU, False) + DRIcheck.Add(tDriComp.Gears, False) + DRIcheck.Add(tDriComp.Padd, False) + DRIcheck.Add(tDriComp.Pe, False) + DRIcheck.Add(tDriComp.VairVres, False) + DRIcheck.Add(tDriComp.VairBeta, False) + DRIcheck.Add(tDriComp.s, False) + DRIcheck.Add(tDriComp.StopTime, False) + DRIcheck.Add(tDriComp.Torque, False) + + If file.EndOfFile Then + WorkerMsg(tMsgID.Err, "Driving cycle invalid!", MsgSrc) + Return False + End If + + Spalten = New Dictionary(Of tDriComp, Integer) + Values = New Dictionary(Of tDriComp, List(Of Double)) + + '*** + '*** First row: Name/Identification of the Components + line = file.ReadLine + + 'Check Number of Columns/Components + s1 = UBound(line) + + For s = 0 To s1 + + Comp = fDriComp(line(s)) + + 'Falls DRIcomp = Undefined dann wirds als EXS-Comp oder als Emission für KF-Erstellung / Eng-Analysis verwendet |@@| If used DRIcomp = Undefined it will get as EXS-Comp or Emission for KF-Creation / Eng-Analysis + If Comp = tDriComp.Undefined Then + + AuxComp = fAuxComp(line(s)) + + If AuxComp = tAuxComp.Undefined Then + + 'ERROR when component is unknown + WorkerMsg(tMsgID.Err, "'" & line(s) & "' is no valid cycle input parameter!", MsgSrc) + GoTo lbEr + + Else + + txt = fCompSubStr(line(s)) + + If Not AuxDef Then + AuxComponents = New Dictionary(Of String, List(Of Single)) + AuxSpalten = New Dictionary(Of String, Integer) + End If + + If AuxComponents.ContainsKey(txt) Then + WorkerMsg(tMsgID.Err, "Multiple definitions of auxiliary '" & txt & "' in driving cycle! Column " & s + 1, MsgSrc) + GoTo lbEr + End If + + AuxComponents.Add(txt, New List(Of Single)) + AuxSpalten.Add(txt, s) + + AuxDef = True + + End If + + + + Else + + If DRIcheck(Comp) Then + WorkerMsg(tMsgID.Err, "Component '" & line(s) & "' already defined! Column " & s + 1, MsgSrc) + GoTo lbEr + End If + + DRIcheck(Comp) = True + Spalten.Add(Comp, s) + Values.Add(Comp, New List(Of Double)) + + End If + + Next + + 'Set Gvorg/Nvorg: + Tvorg = DRIcheck(tDriComp.t) + Vvorg = DRIcheck(tDriComp.V) + Svorg = DRIcheck(tDriComp.s) + Gvorg = DRIcheck(tDriComp.Gears) + Nvorg = DRIcheck(tDriComp.nU) + Pvorg = DRIcheck(tDriComp.Pe) + PaddVorg = DRIcheck(tDriComp.Padd) + GradVorg = DRIcheck(tDriComp.Grad) + VairVorg = DRIcheck(tDriComp.VairVres) And DRIcheck(tDriComp.VairBeta) + Mvorg = DRIcheck(tDriComp.Torque) + + If Mvorg And Pvorg Then + WorkerMsg(tMsgID.Warn, "Engine torque and power defined in cycle! Torque will be ignored!", MsgSrc) + Mvorg = False + End If + + + Try + Do While Not file.EndOfFile + tDim += 1 'wird in ResetMe zurück gesetzt + line = file.ReadLine + + For Each sKV In Spalten + + If sKV.Key = tDriComp.Pe Or sKV.Key = tDriComp.Torque Then + If Trim(line(sKV.Value)) = sKey.EngDrag Then line(sKV.Value) = -999999 + End If + + Values(sKV.Key).Add(CDbl(line(sKV.Value))) + Next + + If AuxDef Then + For Each AuxID In AuxSpalten.Keys + AuxComponents(AuxID).Add(CSng(line(AuxSpalten(AuxID)))) + Next + End If + + Loop + Catch ex As Exception + + WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & tDim + 1 & " (" & FilePath & ")", MsgSrc, FilePath) + GoTo lbEr + + End Try + + file.Close() + + Scycle = (Svorg And Not Tvorg) + + If Vvorg Then + For s = 0 To tDim + Values(tDriComp.V)(s) /= 3.6 + If Values(tDriComp.V)(s) < 0.025 Then Values(tDriComp.V)(s) = 0 + Next + End If + + If Mvorg And Nvorg Then + Values.Add(tDriComp.Pe, New List(Of Double)) + Pvorg = True + For s = 0 To tDim + Values(tDriComp.Pe).Add(nMtoPe(Values(tDriComp.nU)(s), Values(tDriComp.Torque)(s))) + Next + End If + + Return True + +lbEr: + file.Close() + + Return False + + End Function + + ''' <summary> + ''' Calculates altitude for each time step if driving cycle includes slope. + ''' </summary> + ''' <remarks></remarks> + Public Sub GradToAlt() + Dim i As Integer + Dim v0 As New List(Of Double) + Dim vg As List(Of Double) + Dim vs As List(Of Double) + Dim vv As List(Of Double) + Dim vt As List(Of Double) + + 'Skip if altitude is defined already + If Values.ContainsKey(tDriComp.Alt) Then Exit Sub + + If GradVorg And Vvorg Then + + vg = Values(tDriComp.Grad) + + v0.Add(0) + + If Scycle Then + + vs = Values(tDriComp.s) + + For i = 1 To tDim + v0.Add(v0(i - 1) + ((vg(i) + vg(i - 1)) / 200) * (vs(i) - vs(i - 1))) + Next + + + Else + + vv = Values(tDriComp.V) + + If Tvorg Then + + vt = Values(tDriComp.t) + + For i = 1 To tDim + v0.Add(v0(i - 1) + ((vg(i) + vg(i - 1)) / 200) * vv(i) * (vt(i) - vt(i - 1))) + Next + + Else + + For i = 1 To tDim + v0.Add(v0(i - 1) + ((vg(i) + vg(i - 1)) / 200) * vv(i) * 1) + Next + + End If + End If + + + + Else + + For i = 0 To tDim + v0.Add(0) + Next + + End If + + Values.Add(tDriComp.Alt, v0) + Values.Remove(tDriComp.Grad) + + End Sub + + ''' <summary> + ''' Convert distance-based cycle to time-based cycle. + ''' </summary> + ''' <returns>True= Convertion successful.</returns> + ''' <remarks></remarks> + Public Function ConvStoT() As Boolean + Dim i As Integer + Dim j As Integer + Dim ds As Double + Dim vm As Double + Dim a As Double + Dim am As Double + Dim dv As Double + Dim s As Double + Dim t As Double + Dim dt As Double + Dim vstep As Double + Dim Dist As List(Of Double) + Dim Speed As List(Of Double) + Dim Alt As List(Of Double) + Dim StopTime As List(Of Double) + Dim Time As New List(Of Double) + Dim tValues As New Dictionary(Of tDriComp, List(Of Double)) + Dim tDist As New List(Of Double) + Dim hzTime As New List(Of Double) + Dim hzDist As New List(Of Double) + Dim hzValues As New Dictionary(Of tDriComp, List(Of Double)) + Dim ValKV As KeyValuePair(Of tDriComp, List(Of Double)) + Dim tmax As Integer + + Dim tAuxValues As Dictionary(Of String, List(Of Single)) = Nothing + Dim hzAuxValues As Dictionary(Of String, List(Of Single)) = Nothing + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + + Dim SpeedOgl As New List(Of Double) + Dim tSpeedOgl As New List(Of Double) + Dim hzSpeedOgl As New List(Of Double) + + Dim StopTimeError As Boolean = False + + Dim MsgSrc As String + + MsgSrc = "Main/DRI/ConvStoT" + + If Not Values.ContainsKey(tDriComp.StopTime) Then + WorkerMsg(tMsgID.Err, "Stop time not defined in cycle (" & sKey.DRI.StopTime & ")!", MsgSrc) + Return False + End If + + If Not Values.ContainsKey(tDriComp.V) Then + WorkerMsg(tMsgID.Err, "Vehicle speed not defined in cycle (" & sKey.DRI.V & ")!", MsgSrc) + Return False + End If + + Dist = Values(tDriComp.s) + Speed = New List(Of Double) + For i = 0 To tDim + Speed.Add(Values(tDriComp.V)(i)) + SpeedOgl.Add(Values(tDriComp.V)(i)) + Next + + StopTime = Values(tDriComp.StopTime) + vstep = 0.001 + + If Values.ContainsKey(tDriComp.Alt) Then + Alt = Values(tDriComp.Alt) + Else + Alt = New List(Of Double) + For i = 0 To tDim + Alt.Add(0) + Next + Values.Add(tDriComp.Alt, Alt) + End If + + For Each ValKV In Values + If ValKV.Key <> tDriComp.s And ValKV.Key <> tDriComp.StopTime Then + tValues.Add(ValKV.Key, New List(Of Double)) + hzValues.Add(ValKV.Key, New List(Of Double)) + End If + Next + + If AuxDef Then + tAuxValues = New Dictionary(Of String, List(Of Single)) + hzAuxValues = New Dictionary(Of String, List(Of Single)) + For Each AuxKV In AuxComponents + tAuxValues.Add(AuxKV.Key, New List(Of Single)) + hzAuxValues.Add(AuxKV.Key, New List(Of Single)) + Next + End If + + 'Check if smallest distance step is smaller or equal 1m + For i = 1 To tDim + If Dist(i) - Dist(i - 1) > 1 Then + WorkerMsg(tMsgID.Err, "Distance-based cycles must not include larger distance-steps than 1[m]!", MsgSrc) + Return False + End If + Next + + '*********************************** Deceleration(Verzögerung) limit ******************************** + For i = tDim To 1 Step -1 + + ds = Dist(i) - Dist(i - 1) + + vm = (Speed(i) + Speed(i - 1)) / 2 + dv = Speed(i) - Speed(i - 1) + + a = vm * dv / ds + + am = VEC.aDesMin(vm) + + Do While a < am + + Speed(i - 1) -= vstep + + vm = (Speed(i) + Speed(i - 1)) / 2 + dv = Speed(i) - Speed(i - 1) + + a = vm * dv / ds + + am = VEC.aDesMin(vm) + + Loop + + Next + + + '*********************************** Create Time-sequence '*********************************** + t = 0 + s = Dist(0) + + Time.Add(t) + For Each ValKV In tValues + If ValKV.Key <> tDriComp.V Then tValues(ValKV.Key).Add(Values(ValKV.Key)(0)) + Next + tValues(tDriComp.V).Add(Speed(0)) + tSpeedOgl.Add(SpeedOgl(0)) + tDist.Add(s) + If AuxDef Then + For Each AuxKV In AuxComponents + tAuxValues(AuxKV.Key).Add(AuxKV.Value(0)) + Next + End If + + + If Speed(0) < 0.0001 Then + + If StopTime(0) = 0 Then + WorkerMsg(tMsgID.Err, "Stop time = 0 at cylce start!", MsgSrc) + StopTimeError = True + End If + + t += StopTime(0) + Time.Add(t) + For Each ValKV In tValues + If ValKV.Key <> tDriComp.V Then tValues(ValKV.Key).Add(Values(ValKV.Key)(0)) + Next + tValues(tDriComp.V).Add(Speed(0)) + tSpeedOgl.Add(SpeedOgl(0)) + tDist.Add(s) + If AuxDef Then + For Each AuxKV In AuxComponents + tAuxValues(AuxKV.Key).Add(AuxKV.Value(0)) + Next + End If + End If + + For i = 0 To tDim - 1 + + vm = (Speed(i) + Speed(i + 1)) / 2 + + If vm = 0 Then + WorkerMsg(tMsgID.Err, "Speed can't be zero while distance changes! (line " & i.ToString & ")", MsgSrc) + Return False + End If + + ds = Dist(i + 1) - Dist(i) + dt = ds / vm + + t += dt + s += ds + + Time.Add(t) + For Each ValKV In tValues + If ValKV.Key <> tDriComp.V Then tValues(ValKV.Key).Add(Values(ValKV.Key)(i + 1)) + Next + tValues(tDriComp.V).Add(Speed(i + 1)) + tSpeedOgl.Add(SpeedOgl(i + 1)) + tDist.Add(s) + If AuxDef Then + For Each AuxKV In AuxComponents + tAuxValues(AuxKV.Key).Add(AuxKV.Value(i + 1)) + Next + End If + + If Speed(i + 1) < 0.0001 Then + + If StopTime(i + 1) = 0 Then + WorkerMsg(tMsgID.Err, "Stop time = 0 at distance= " & s & "[m]!", MsgSrc) + StopTimeError = True + End If + + t += StopTime(i + 1) + + Time.Add(t) + For Each ValKV In tValues + If ValKV.Key <> tDriComp.V Then tValues(ValKV.Key).Add(Values(ValKV.Key)(i + 1)) + Next + tValues(tDriComp.V).Add(Speed(i + 1)) + tSpeedOgl.Add(SpeedOgl(i + 1)) + tDist.Add(s) + + If AuxDef Then + For Each AuxKV In AuxComponents + tAuxValues(AuxKV.Key).Add(AuxKV.Value(i + 1)) + Next + End If + + End If + + Next + + + If StopTimeError Then Return False + + '*********************************** Convert to 1Hz '*********************************** + i = 0 + j = -1 + tDim = Time.Count - 1 + s = 0 + + tmax = Math.Floor(Time(tDim)) + + + + Do + j += 1 + + hzTime.Add(j) + + Do While Time(i) <= hzTime(j) + i += 1 + Loop + + If Time(i) - Time(i - 1) = 0 Then + hzDist.Add(tDist(i - 1)) + Else + hzDist.Add((hzTime(j) - Time(i - 1)) * (tDist(i) - tDist(i - 1)) / (Time(i) - Time(i - 1)) + tDist(i - 1)) + End If + + If tDist(i) - tDist(i - 1) = 0 Then + For Each ValKV In tValues + If ValKV.Key = tDriComp.V Then + hzValues(ValKV.Key).Add(0) + Else + hzValues(ValKV.Key).Add(tValues(ValKV.Key)(i - 1)) + End If + Next + hzSpeedOgl.Add(0) + + If AuxDef Then + For Each AuxKV In AuxComponents + 'WRONG!! => hzAuxValues(AuxKV.Key).Add(AuxKV.Value(i - 1)) + hzAuxValues(AuxKV.Key).Add(tAuxValues(AuxKV.Key)(i - 1)) + Next + End If + + Else + + For Each ValKV In tValues + hzValues(ValKV.Key).Add((hzDist(j) - tDist(i - 1)) * (tValues(ValKV.Key)(i) - tValues(ValKV.Key)(i - 1)) / (tDist(i) - tDist(i - 1)) + tValues(ValKV.Key)(i - 1)) + Next + hzSpeedOgl.Add((hzDist(j) - tDist(i - 1)) * (tSpeedOgl(i) - tSpeedOgl(i - 1)) / (tDist(i) - tDist(i - 1)) + tSpeedOgl(i - 1)) + + If AuxDef Then + For Each AuxKV In AuxComponents + hzAuxValues(AuxKV.Key).Add((hzDist(j) - tDist(i - 1)) * (tAuxValues(AuxKV.Key)(i) - tAuxValues(AuxKV.Key)(i - 1)) / (tDist(i) - tDist(i - 1)) + tAuxValues(AuxKV.Key)(i - 1)) + Next + End If + + End If + + Loop Until i = tDim + 1 Or j + 1 > tmax + + Values = hzValues + VoglS = hzSpeedOgl + MODdata.Vh.Weg = hzDist + If AuxDef Then AuxComponents = hzAuxValues + tDim = Values(tDriComp.V).Count - 1 + + Return True + + End Function + + ''' <summary> + ''' Convert cycle to 1Hz. + ''' </summary> + ''' <returns>True= Convertion successful.</returns> + ''' <remarks></remarks> + Public Function ConvTo1Hz() As Boolean + + Dim tMin As Double + Dim tMax As Double + Dim tMid As Integer + Dim Anz As Integer + Dim z As Integer + Dim Time As Double + Dim t1 As Double + Dim Finish As Boolean + Dim NewValues As Dictionary(Of tDriComp, List(Of Double)) + Dim KV As KeyValuePair(Of tDriComp, List(Of Double)) + Dim KVd As KeyValuePair(Of tDriComp, Double) + Dim fTime As List(Of Double) + Dim Summe As Dictionary(Of tDriComp, Double) + + Dim NewAuxValues As Dictionary(Of String, List(Of Single)) = Nothing + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + Dim AuxSumme As Dictionary(Of String, Single) = Nothing + + Dim MsgSrc As String + + MsgSrc = "DRI/Convert" + + fTime = Values(tDriComp.t) + + 'Check whether Time is not reversed + For z = 1 To tDim + If fTime(z) < fTime(z - 1) Then + WorkerMsg(tMsgID.Err, "Time step invalid! t(" & z - 1 & ") = " & fTime(z - 1) & "[s], t(" & z & ") = " & fTime(z) & "[s]", MsgSrc) + Return False + End If + Next + + 'Define Time-range + t0 = CInt(Math.Round(fTime(0), 0, MidpointRounding.AwayFromZero)) + t1 = fTime(tDim) + + 'Create Output, Total and Num-of-Dictionaries + NewValues = New Dictionary(Of tDriComp, List(Of Double)) + Summe = New Dictionary(Of tDriComp, Double) + + For Each KV In Values + NewValues.Add(KV.Key, New List(Of Double)) + If KV.Key <> tDriComp.t Then Summe.Add(KV.Key, 0) + Next + + If AuxDef Then + NewAuxValues = New Dictionary(Of String, List(Of Single)) + AuxSumme = New Dictionary(Of String, Single) + For Each AuxKV In AuxComponents + NewAuxValues.Add(AuxKV.Key, New List(Of Single)) + AuxSumme.Add(AuxKV.Key, 0) + Next + End If + + 'Start-values + tMin = fTime(0) + tMid = CInt(tMin) + tMax = tMid + 0.5 + + If fTime(0) >= tMax Then + tMid = tMid + 1 + tMin = tMid - 0.5 + tMax = tMid + 0.5 + t0 = tMid + End If + + Anz = 0 + Finish = False + + For z = 0 To tDim + + 'Next Time-step + Time = fTime(z) + +lb10: + + 'If Time-step > tMax: + If Time >= tMax Or z = tDim Then + + 'Conclude Second + NewValues(tDriComp.t).Add(tMid) + + 'If no values ​​in Sum: Interpolate + If Anz = 0 Then + + For Each KVd In Summe + NewValues(KVd.Key).Add((tMid - fTime(z - 1)) * (Values(KVd.Key)(z) - Values(KVd.Key)(z - 1)) / (fTime(z) - fTime(z - 1)) + Values(KVd.Key)(z - 1)) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + NewAuxValues(AuxKV.Key).Add((tMid - fTime(z - 1)) * (AuxKV.Value(z) - AuxKV.Value(z - 1)) / (fTime(z) - fTime(z - 1)) + AuxKV.Value(z - 1)) + Next + End If + + Else + + If Time = tMax Then + + For Each KVd In Summe + NewValues(KVd.Key).Add((Summe(KVd.Key) + Values(KVd.Key)(z)) / (Anz + 1)) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + NewAuxValues(AuxKV.Key).Add((AuxSumme(AuxKV.Key) + AuxKV.Value(z)) / (Anz + 1)) + Next + End If + + Else + 'If only one Value: Inter- /Extrapolate + If Anz = 1 Then + + If z < 2 OrElse fTime(z - 1) < tMid Then + + For Each KVd In Summe + NewValues(KVd.Key).Add((tMid - fTime(z - 1)) * (Values(KVd.Key)(z) - Values(KVd.Key)(z - 1)) / (fTime(z) - fTime(z - 1)) + Values(KVd.Key)(z - 1)) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + NewAuxValues(AuxKV.Key).Add((tMid - fTime(z - 1)) * (AuxKV.Value(z) - AuxKV.Value(z - 1)) / (fTime(z) - fTime(z - 1)) + AuxKV.Value(z - 1)) + Next + End If + + Else + + For Each KVd In Summe + NewValues(KVd.Key).Add((tMid - fTime(z - 2)) * (Values(KVd.Key)(z - 1) - Values(KVd.Key)(z - 2)) / (fTime(z - 1) - fTime(z - 2)) + Values(KVd.Key)(z - 2)) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + NewAuxValues(AuxKV.Key).Add((tMid - fTime(z - 2)) * (AuxKV.Value(z - 1) - AuxKV.Value(z - 2)) / (fTime(z - 1) - fTime(z - 2)) + AuxKV.Value(z - 2)) + Next + End If + + End If + + Else + + For Each KVd In Summe + NewValues(KVd.Key).Add(Summe(KVd.Key) / Anz) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + NewAuxValues(AuxKV.Key).Add(AuxSumme(AuxKV.Key) / Anz) + Next + End If + + End If + End If + End If + + If Not Finish Then + + 'Set New Area(Bereich) + tMid = tMid + 1 + tMin = tMid - 0.5 + tMax = tMid + 0.5 + + 'Check whether last second + If tMax > t1 Then + tMax = t1 + Finish = True + End If + + 'New Sum /Num no start + For Each KV In Values + If KV.Key <> tDriComp.t Then Summe(KV.Key) = 0 + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + AuxSumme(AuxKV.Key) = 0 + Next + End If + + Anz = 0 + + GoTo lb10 + + End If + + End If + + For Each KV In Values + If KV.Key <> tDriComp.t Then Summe(KV.Key) += Values(KV.Key)(z) + Next + + If AuxDef Then + For Each AuxKV In AuxComponents + AuxSumme(AuxKV.Key) += AuxKV.Value(z) + Next + End If + + Anz = Anz + 1 + + Next + + 'Accept New fields + Values = NewValues + tDim = Values(tDriComp.t).Count - 1 + + Return True + + End Function + + ''' <summary> + ''' Duplicates first time step. Needed for distance-based cycles to ensure vehicle stop at cycle start. + ''' </summary> + ''' <remarks></remarks> + Public Sub FirstZero() + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + Dim ValKV As KeyValuePair(Of tDriComp, List(Of Double)) + + tDim += 1 + + For Each ValKV In Values + ValKV.Value.Insert(0, ValKV.Value(0)) + Next + + If Scycle Then VoglS.Insert(0, VoglS(0)) + + If AuxDef Then + For Each AuxKV In AuxComponents + AuxKV.Value.Insert(0, AuxKV.Value(0)) + Next + End If + + End Sub + +End Class + diff --git a/VECTO/Input Files/cENG.vb b/VECTO/Input Files/cENG.vb new file mode 100644 index 0000000000000000000000000000000000000000..3bf449c7c5db1f46adb45a2fff7ecaf79779635f --- /dev/null +++ b/VECTO/Input Files/cENG.vb @@ -0,0 +1,502 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Engine input file +''' </summary> +''' <remarks></remarks> +Public Class cENG + + ''' <summary> + ''' Current format version + ''' </summary> + ''' <remarks></remarks> + Private Const FormatVersion As Short = 2 + + ''' <summary> + ''' Format version of input file. Defined in ReadFile. + ''' </summary> + ''' <remarks></remarks> + Private FileVersion As Short + + ''' <summary> + ''' Engine description (model, type, etc.). Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public ModelName As String + + ''' <summary> + ''' Engine displacement [ccm]. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public Displ As Single + + ''' <summary> + ''' Idling speed [1/min]. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public Nidle As Single + + ''' <summary> + ''' Rotational inertia including flywheel [kgm²]. Saved in input file. Overwritten by generic value in Declaration mode. + ''' </summary> + ''' <remarks></remarks> + Public I_mot As Single + + ''' <summary> + ''' List of full load/motoring curve files (.vfld) + ''' </summary> + ''' <remarks></remarks> + Public fFLD As List(Of cSubPath) + + ''' <summary> + ''' Path to fuel consumption map + ''' </summary> + ''' <remarks></remarks> + Private fMAP As cSubPath + + ''' <summary> + ''' List of gear-assignments for the given .vfld files. + ''' </summary> + ''' <remarks></remarks> + Public FLDgears As List(Of String) + + ''' <summary> + ''' Directory of engine file. Defined in FilePath property (Set) + ''' </summary> + ''' <remarks></remarks> + Private MyPath As String + + ''' <summary> + ''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile. + ''' </summary> + ''' <remarks></remarks> + Private sFilePath As String + + ''' <summary> + ''' List of sub input files (e.g. FC map). Can be accessed by FileList property. Generated by CreateFileList. + ''' </summary> + ''' <remarks></remarks> + Private MyFileList As List(Of String) + + ''' <summary> + ''' WHTC Urban test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCurban As Single + + ''' <summary> + ''' WHTC Rural test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCrural As Single + + ''' <summary> + ''' WHTC Motorway test results. Saved in input file. + ''' </summary> + ''' <remarks></remarks> + Public WHTCmw As Single + + ''' <summary> + ''' Rated engine speed [1/min]. Engine speed at max. power. Defined in Init. + ''' </summary> + ''' <remarks></remarks> + Public Nrated As Single + + ''' <summary> + ''' Maximum engine power [kW]. Power at rated engine speed. + ''' </summary> + ''' <remarks></remarks> + Public Pmax As Single + + Public SavedInDeclMode As Boolean + + + ''' <summary> + ''' Generates list of all sub input files (e.g. FC map). Sets MyFileList. + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function CreateFileList() As Boolean + Dim sb As cSubPath + + MyFileList = New List(Of String) + + For Each sb In Me.fFLD + MyFileList.Add(sb.FullPath) + Next + + MyFileList.Add(PathMAP) + + 'Not used!!! MyFileList.Add(PathWHTC) + + Return True + + End Function + + ''' <summary> + ''' New instance. Initialise + ''' </summary> + ''' <remarks></remarks> + Public Sub New() + MyPath = "" + sFilePath = "" + fMAP = New cSubPath + SetDefault() + End Sub + + ''' <summary> + ''' Set default values + ''' </summary> + ''' <remarks></remarks> + Private Sub SetDefault() + ModelName = "Undefined" + Displ = 0 + Nidle = 0 + I_mot = 0 + Nrated = 0 + Pmax = 0 + + fFLD = New List(Of cSubPath) + FLDgears = New List(Of String) + + fMAP.Clear() + + WHTCurban = 0 + WHTCrural = 0 + WHTCmw = 0 + + SavedInDeclMode = False + + End Sub + + ''' <summary> + ''' Save file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling. + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function SaveFile() As Boolean + Dim i As Integer + Dim JSON As New cJSON + Dim dic As Dictionary(Of String, Object) + Dim dic0 As Dictionary(Of String, Object) + Dim ls As List(Of Object) + + 'Header + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + JSON.Content.Add("Header", dic) + + 'Body + dic = New Dictionary(Of String, Object) + + dic.Add("SavedInDeclMode", Cfg.DeclMode) + SavedInDeclMode = Cfg.DeclMode + + dic.Add("ModelName", ModelName) + + dic.Add("Displacement", Displ) + dic.Add("IdlingSpeed", Nidle) + dic.Add("Inertia", I_mot) + + ls = New List(Of Object) + For i = 0 To fFLD.Count - 1 + dic0 = New Dictionary(Of String, Object) + dic0.Add("Path", fFLD(i).PathOrDummy) + dic0.Add("Gears", FLDgears(i)) + ls.Add(dic0) + Next + dic.Add("FullLoadCurves", ls) + + dic.Add("FuelMap", fMAP.PathOrDummy) + + dic.Add("WHTC-Urban", WHTCurban) + dic.Add("WHTC-Rural", WHTCrural) + dic.Add("WHTC-Motorway", WHTCmw) + + + JSON.Content.Add("Body", dic) + + + Return JSON.WriteFile(sFilePath) + + + End Function + + ''' <summary> + ''' Read file. <see cref="P:VECTO.cENG.FilePath" /> must be set before calling. + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean + Dim MsgSrc As String + Dim i As Integer + Dim JSON As New cJSON + Dim dic As Object + + MsgSrc = "ENG/ReadFile" + + SetDefault() + + + If Not JSON.ReadFile(sFilePath) Then Return False + + Try + + FileVersion = JSON.Content("Header")("FileVersion") + + If FileVersion > 1 Then + SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode") + Else + SavedInDeclMode = Cfg.DeclMode + End If + + ModelName = JSON.Content("Body")("ModelName") + + Displ = JSON.Content("Body")("Displacement") + Nidle = JSON.Content("Body")("IdlingSpeed") + I_mot = JSON.Content("Body")("Inertia") + + i = -1 + For Each dic In JSON.Content("Body")("FullLoadCurves") + i += 1 + fFLD.Add(New cSubPath) + fFLD(i).Init(MyPath, dic("Path")) + FLDgears.Add(dic("Gears")) + Next + + fMAP.Init(MyPath, JSON.Content("Body")("FuelMap")) + + If Not JSON.Content("Body")("WHTC-Urban") Is Nothing Then + WHTCurban = CSng(JSON.Content("Body")("WHTC-Urban")) + WHTCrural = CSng(JSON.Content("Body")("WHTC-Rural")) + WHTCmw = CSng(JSON.Content("Body")("WHTC-Motorway")) + End If + + Catch ex As Exception + If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc) + Return False + End Try + + Return True + + End Function + + ''' <summary> + ''' Initialise for calculation. File must be read already. + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function Init() As Boolean + Dim fl As cFLD + Dim fldgear As Dictionary(Of Integer, String) + Dim fldgFromTo As String() + Dim str As String + Dim i As Integer + Dim j As Integer + Dim G As Integer + + Dim MsgSrc As String + MsgSrc = "ENG/Init" + + G = Math.Max(GBX.GearCount, 0) + + 'Create cFLD instance for each gear (list with gear as index) + FLD = New List(Of cFLD) + + If FLDgears.Count = 0 Then + WorkerMsg(tMsgID.Err, "No .vfld file defined in Engine file!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + fldgear = New Dictionary(Of Integer, String) + + Try + j = -1 + For Each str In FLDgears + + j += 1 + If str.Contains("-") Then + fldgFromTo = str.Replace(" ", "").Split("-") + Else + fldgFromTo = New String() {str, str} + End If + + For i = CInt(fldgFromTo(0)) To CInt(fldgFromTo(1)) + + If i > G Then Exit For + + If i < 0 Or i > 99 Then + WorkerMsg(tMsgID.Err, "Cannot assign .vfld file to gear " & i & "!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + If fldgear.ContainsKey(i) Then + WorkerMsg(tMsgID.Err, "Multiple .vfld files are assigned to gear " & i & "!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + fldgear.Add(i, PathFLD(j)) + + Next + + Next + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to process engine file '" & sFilePath & "'!", MsgSrc) + Return False + End Try + + 'read .vfld files + For i = 0 To G + + If Not fldgear.ContainsKey(i) Then + WorkerMsg(tMsgID.Err, "No .vfld file assigned to gear " & i & "!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + FLD.Add(New cFLD) + FLD(i).FilePath = fldgear(i) + + Try + If Not FLD(i).ReadFile Then Return False 'Error message in ReadFile + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & fldgear(i) & ")", MsgSrc, fldgear(i)) + Return False + End Try + + FLD(i).Init(Nidle) + + Next + + 'Read FC map + MAP = New cMAP + MAP.FilePath = PathMAP + + Try + If Not MAP.ReadFile Then Return False 'Fehlermeldung hier nicht notwendig weil schon von in ReadFile + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & PathMAP & ")", MsgSrc, PathMAP) + Return False + End Try + + 'Triangulate FC map. + If Not MAP.Triangulate() Then + WorkerMsg(tMsgID.Err, "Failed to triangulate FC map! (" & PathMAP & ")", MsgSrc, PathMAP) + Return False + End If + + + 'Special rpms for Shift Model and WHTC de-normalisation + fl = FLD(0) + + Nrated = fl.fnUrated + + Pmax = fl.Pfull(fl.fnUrated) + + Return True + + End Function + + ''' <summary> + ''' Set generic values for Declaration Mode + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function DeclInit() As Boolean + Dim f0 As cFLD + + I_mot = Declaration.EngInertia(Displ) + + For Each f0 In FLD + f0.DeclInit() + Next + + Return True + End Function + + ''' <summary> + ''' Returns list of sub input files after calling CreateFileList. + ''' </summary> + ''' <value></value> + ''' <returns>list of sub input files</returns> + ''' <remarks></remarks> + Public ReadOnly Property FileList As List(Of String) + Get + Return MyFileList + End Get + End Property + + ''' <summary> + ''' Get or set Filepath before calling <see cref="M:VECTO.cENG.ReadFile" /> or <see cref="M:VECTO.cENG.SaveFile" /> + ''' </summary> + ''' <value></value> + ''' <returns>Full filepath</returns> + ''' <remarks></remarks> + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + If sFilePath = "" Then + MyPath = "" + Else + MyPath = IO.Path.GetDirectoryName(sFilePath) & "\" + End If + End Set + End Property + + ''' <summary> + ''' Get or set file path (cSubPath) of .vfld file for each gear range. + ''' </summary> + ''' <param name="x">Index</param> + ''' <param name="Original">True= (relative) file path as saved in file; False= full file path</param> + ''' <value></value> + ''' <returns>Relative or absolute file path for each gear range</returns> + ''' <remarks></remarks> + Public Property PathFLD(ByVal x As Short, Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return fFLD(x).OriginalPath + Else + Return fFLD(x).FullPath + End If + End Get + Set(ByVal value As String) + fFLD(x).Init(MyPath, value) + End Set + End Property + + ''' <summary> + ''' Get or set file path (cSubPath) to FC map (.vmap) + ''' </summary> + ''' <param name="Original">True= (relative) file path as saved in file; False= full file path</param> + ''' <value></value> + ''' <returns>Relative or absolute file path to FC map</returns> + ''' <remarks></remarks> + Public Property PathMAP(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return fMAP.OriginalPath + Else + Return fMAP.FullPath + End If + End Get + Set(ByVal value As String) + fMAP.Init(MyPath, value) + End Set + End Property + +End Class diff --git a/VECTO/Input Files/cFLD.vb b/VECTO/Input Files/cFLD.vb new file mode 100644 index 0000000000000000000000000000000000000000..00b72ca34815482de352ff5ab93b2a2b794cfd3f --- /dev/null +++ b/VECTO/Input Files/cFLD.vb @@ -0,0 +1,570 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Full load/motoring curve input file +''' </summary> +''' <remarks></remarks> +Public Class cFLD + + ''' <summary> + ''' Full file path. Needs to be defined via FilePath property before calling ReadFile or SaveFile. + ''' </summary> + ''' <remarks></remarks> + Private sFilePath As String + + ''' <summary> + ''' List of full load torque values [Nm] + ''' </summary> + ''' <remarks></remarks> + Public LTq As List(Of Single) + + ''' <summary> + ''' List of motoring torque values [Nm] + ''' </summary> + ''' <remarks></remarks> + Public LTqDrag As List(Of Single) + + ''' <summary> + ''' List of engine speed values [1/min] + ''' </summary> + ''' <remarks></remarks> + Public LnU As List(Of Single) + + ''' <summary> + ''' List of PT1 values [s] + ''' </summary> + ''' <remarks></remarks> + Private LPT1 As List(Of Single) + + ''' <summary> + ''' Last index of lists (items count - 1) + ''' </summary> + ''' <remarks></remarks> + Private iDim As Integer + + ''' <summary> + ''' Nlo [1/min]. Lowest enging speed with 55% of max. power. Defined in Init. + ''' </summary> + ''' <remarks></remarks> + Public Nlo As Single + + ''' <summary> + ''' Nhi [1/min]. Highest engine speed with 70% of max. power. Defined in Init. + ''' </summary> + ''' <remarks></remarks> + Public Nhi As Single + + ''' <summary> + ''' Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init. + ''' </summary> + ''' <remarks></remarks> + Public Npref As Single + + ''' <summary> + ''' N95h [1/min]. Highest engine speed with 95% of max. power. Defined in Init. + ''' </summary> + ''' <remarks></remarks> + Public N95h As Single + + ''' <summary> + ''' Read file. FilePath must be set before calling. + ''' </summary> + ''' <returns>True if successful.</returns> + ''' <remarks></remarks> + Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean + Dim file As cFile_V3 + Dim line As String() + Dim PT1set As Boolean + Dim FirstLine As Boolean + Dim nU As Double + Dim MsgSrc As String + + MsgSrc = "Main/ReadInp/FLD" + + 'Reset + LTq = Nothing + LTqDrag = Nothing + LnU = Nothing + LPT1 = Nothing + iDim = -1 + + 'Stop if there's no file + If sFilePath = "" OrElse Not IO.File.Exists(sFilePath) Then + If ShowMsg Then WorkerMsg(tMsgID.Err, "FLD file '" & sFilePath & "' not found!", MsgSrc) + Return False + End If + + 'Open file + file = New cFile_V3 + If Not file.OpenRead(sFilePath) Then + If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to open file (" & sFilePath & ") !", MsgSrc) + file = Nothing + Return False + End If + + 'Skip Header + file.ReadLine() + + 'Initialize Lists + LTq = New System.Collections.Generic.List(Of Single) + LTqDrag = New System.Collections.Generic.List(Of Single) + LnU = New System.Collections.Generic.List(Of Single) + LPT1 = New System.Collections.Generic.List(Of Single) + + FirstLine = True + Try + + Do While Not file.EndOfFile + + 'Read Line + line = file.ReadLine + + 'VECTO: M => Pe + nU = CDbl(line(0)) + + LnU.Add(nU) + LTq.Add(CDbl(line(1))) + LTqDrag.Add(CDbl(line(2))) + + If FirstLine Then + PT1set = (UBound(line) > 2) + FirstLine = False + End If + + 'If PT1 not defined, use default value (0) + If PT1set Then + LPT1.Add(CSng(line(3))) + Else + LPT1.Add(0) + End If + + 'Line-counter up (was reset in ResetMe) + iDim += 1 + + + Loop + + Catch ex As Exception + + If ShowMsg Then WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & iDim + 1 & " (" & sFilePath & ")", MsgSrc, sFilePath) + GoTo lbEr + + End Try + + + 'Close file + file.Close() + + Return True + + + 'ERROR-label for clean Abort +lbEr: + file.Close() + file = Nothing + + Return False + + End Function + + ''' <summary> + ''' Returns motoring power [kW] for given engine speed + ''' </summary> + ''' <param name="nU">engine speed [1/min]</param> + ''' <returns>motoring power [kW]</returns> + ''' <remarks></remarks> + Public Function Pdrag(ByVal nU As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If LnU(0) >= nU Then + If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While LnU(i) < nU And i < iDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If LnU(i) < nU Then + MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + End If + +lbInt: + 'Interpolation + Return nMtoPe(nU, (nU - LnU(i - 1)) * (LTqDrag(i) - LTqDrag(i - 1)) / (LnU(i) - LnU(i - 1)) + LTqDrag(i - 1)) + + End Function + + ''' <summary> + ''' Returns full load power [kW] at given engine speed considering transient torque build-up via PT1. + ''' </summary> + ''' <param name="nU">engine speed [1/min]</param> + ''' <param name="LastPe">engine power at previous time step</param> + ''' <returns>full load power [kW]</returns> + ''' <remarks></remarks> + Public Function Pfull(ByVal nU As Single, ByVal LastPe As Single) As Single + Dim i As Int32 + Dim PfullStat As Single + Dim PT1 As Single + + 'Extrapolation for x < x(1) + If LnU(0) >= nU Then + If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While LnU(i) < nU And i < iDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If LnU(i) < nU Then + MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + End If + +lbInt: + 'Interpolation + PfullStat = nMtoPe(nU, (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1)) + PT1 = (nU - LnU(i - 1)) * (LPT1(i) - LPT1(i - 1)) / (LnU(i) - LnU(i - 1)) + LPT1(i - 1) + + 'Dynamic Full-load + Return Math.Min((1 / (PT1 + 1)) * (PfullStat + PT1 * LastPe), PfullStat) + + End Function + + ''' <summary> + ''' Returns stationary full load power [kW] at given engine speed. + ''' </summary> + ''' <param name="nU">engine speed [1/min]</param> + ''' <returns>stationary full load power [kW]</returns> + ''' <remarks></remarks> + Public Function Pfull(ByVal nU As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If LnU(0) >= nU Then + If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While LnU(i) < nU And i < iDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If LnU(i) < nU Then + MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + End If + +lbInt: + 'Interpolation + Return nMtoPe(nU, (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1)) + End Function + + ''' <summary> + ''' Returns stationary full load torque [Nm] at given engine speed. + ''' </summary> + ''' <param name="nU">engine speed [1/min]</param> + ''' <returns>stationary full load torque [Nm]</returns> + ''' <remarks></remarks> + Public Function Tq(ByVal nU As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If LnU(0) >= nU Then + If LnU(0) > nU Then MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While LnU(i) < nU And i < iDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If LnU(i) < nU Then + MODdata.ModErrors.FLDextrapol = "n= " & nU & " [1/min]" + End If + +lbInt: + 'Interpolation + Return (nU - LnU(i - 1)) * (LTq(i) - LTq(i - 1)) / (LnU(i) - LnU(i - 1)) + LTq(i - 1) + End Function + + ''' <summary> + ''' Calculates and returns Npref [1/min]. Speed at 51% torque/speed-integral between idling and N95h. Defined in Init. + ''' </summary> + ''' <returns>Npref [1/min]</returns> + ''' <remarks></remarks> + Public Function fNpref(ByVal Nidle As Single) As Single + Dim i As Integer + Dim Amax As Single + Dim N95h As Single + Dim n As Single + Dim T0 As Single + Dim dn As Single + Dim A As Single + Dim k As Single + + + dn = 0.001 + + N95h = fnUofPfull(0.95 * Pfull(fnUrated), False) + + Amax = Area(Nidle, N95h) + + For i = 0 To iDim - 1 + + If Area(Nidle, LnU(i + 1)) > 0.51 * Amax Then + + n = LnU(i) + T0 = LTq(i) + A = Area(Nidle, n) + + k = (LTq(i + 1) - LTq(i)) / (LnU(i + 1) - LnU(i)) + + Do While A < 0.51 * Amax + n += dn + A += dn * (2 * T0 + k * dn) / 2 + Loop + + Exit For + + End If + + Next + + Return n + + End Function + + ''' <summary> + ''' Calculates torque/speed-integral between two engine speed limits. Used for Npref. + ''' </summary> + ''' <param name="nFrom">lower engine speed limit [1/min]</param> + ''' <param name="nTo">upper engine speed limit [1/min]</param> + ''' <returns>torque/speed-integral between nFrom and nTo [Nm/min]</returns> + ''' <remarks></remarks> + Private Function Area(ByVal nFrom As Single, ByVal nTo As Single) As Single + Dim A As Single + Dim i As Integer + + + A = 0 + For i = 1 To iDim + + If LnU(i - 1) >= nTo Then Exit For + + If LnU(i - 1) >= nFrom Then + + + If LnU(i) <= nTo Then + + 'Add full segment + A += (LnU(i) - LnU(i - 1)) * (LTq(i) + LTq(i - 1)) / 2 + + Else + + 'Add segment till nTo + A += (nTo - LnU(i - 1)) * (Tq(nTo) + LTq(i - 1)) / 2 + + End If + + Else + + If LnU(i) > nFrom Then + + 'Add segment starting from nFrom + A += (LnU(i) - nFrom) * (LTq(i) + Tq(nFrom)) / 2 + + End If + + End If + + Next + + Return A + + + End Function + + ''' <summary> + ''' Calculates and returns engine speed at maximum power [1/min]. + ''' </summary> + ''' <returns>engine speed at maximum power [1/min]</returns> + ''' <remarks></remarks> + Public Function fnUrated() As Single + Dim PeMax As Single + Dim nU As Single + Dim nUmax As Single + Dim nUrated As Single + Dim dnU As Single + Dim P As Single + + dnU = 1 + PeMax = 0 + nU = LnU(0) + nUmax = LnU(iDim) + nUrated = nU + + Do + P = nMtoPe(nU, Tq(nU)) + If P > PeMax Then + PeMax = P + nUrated = nU + End If + nU += dnU + Loop Until nU > nUmax + + Return nUrated + + End Function + + ''' <summary> + ''' Calculates and returns lowest or highest engine speed at given full load power [1/min]. + ''' </summary> + ''' <param name="PeTarget">full load power [kW]</param> + ''' <param name="FromLeft">True= lowest engine speed; False= highest engine speed</param> + ''' <returns>lowest or highest engine speed at given full load power [1/min]</returns> + ''' <remarks></remarks> + Public Function fnUofPfull(ByVal PeTarget As Single, ByVal FromLeft As Boolean) As Single + Dim Pe As Single + Dim LastPe As Single + Dim nU As Single + Dim nUmin As Single + Dim nUmax As Single + Dim nUtarget As Single + Dim dnU As Single + + dnU = 1 + nUmin = LnU(0) + nUmax = LnU(iDim) + + If FromLeft Then + + nU = nUmin + LastPe = nMtoPe(nU, Tq(nU)) + nUtarget = nU + + Do + Pe = nMtoPe(nU, Tq(nU)) + + If Pe > PeTarget Then + If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then + Return nU - dnU + Else + Return nU + End If + End If + + LastPe = Pe + nU += dnU + Loop Until nU > nUmax + + Else + + nU = nUmax + LastPe = nMtoPe(nU, Tq(nU)) + nUtarget = nU + + Do + Pe = nMtoPe(nU, Tq(nU)) + + If Pe > PeTarget Then + If Math.Abs(LastPe - PeTarget) < Math.Abs(Pe - PeTarget) Then + Return nU + dnU + Else + Return nU + End If + End If + + LastPe = Pe + nU -= dnU + Loop Until nU < nUmin + + End If + + Return nUtarget + + End Function + + ''' <summary> + ''' Calculates and returns maximum torque [Nm]. + ''' </summary> + ''' <returns>maximum torque [Nm]</returns> + ''' <remarks></remarks> + Public Function Tmax() As Single + Dim i As Int16 + Dim Tm As Single + + Tm = LTq(0) + For i = 1 To iDim + If LTq(i) > Tm Then Tm = LTq(i) + Next + + Return Tm + + End Function + + Public Sub Init(ByVal Nidle As Single) + Dim Pmax As Single + + Pmax = Pfull(fnUrated) + + Nlo = fnUofPfull(0.55 * Pmax, True) + + N95h = fnUofPfull(0.95 * Pmax, False) + + Npref = fNpref(Nidle) + + Nhi = fnUofPfull(0.7 * Pmax, False) + + End Sub + + Public Sub DeclInit() + Dim i As Integer + + For i = 0 To iDim + LPT1(i) = Declaration.PT1(LnU(i)) + Next + + End Sub + + ''' <summary> + ''' Get or set Filepath before calling ReadFile + ''' </summary> + ''' <value></value> + ''' <returns>Full filepath</returns> + ''' <remarks></remarks> + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + End Set + End Property + + + + +End Class diff --git a/VECTO/Input Files/cGBX.vb b/VECTO/Input Files/cGBX.vb new file mode 100644 index 0000000000000000000000000000000000000000..04dfd4d7954e4ece73f5c67309d57d774947b919 --- /dev/null +++ b/VECTO/Input Files/cGBX.vb @@ -0,0 +1,1326 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cGBX + + Private Const FormatVersion As Short = 4 + Private FileVersion As Short + + Private MyPath As String + Private sFilePath As String + + Public ModelName As String + Public GbxInertia As Single + Public TracIntrSi As Single + + Public Igetr As List(Of Single) + Public GetrMaps As List(Of cSubPath) + Public IsTCgear As List(Of Boolean) + + Private MyGBmaps As List(Of cDelaunayMap) + Private GetrEffDef As List(Of Boolean) + Private GetrEff As List(Of Single) + + 'Gear shift polygons + Public gs_files As List(Of cSubPath) + Public Shiftpolygons As List(Of cShiftPolygon) + + + Public gs_TorqueResv As Single + Public gs_SkipGears As Boolean + Public gs_ShiftTime As Integer + Public gs_TorqueResvStart As Single + Public gs_StartSpeed As Single + Public gs_StartAcc As Single + Public gs_ShiftInside As Boolean + + Public gs_Type As tGearbox + + 'Torque Converter Input + Public TCon As Boolean + Public TCrefrpm As Single + Private TC_file As New cSubPath + Public TCinertia As Single + + + Private TCnu As New List(Of Single) + Private TCmu As New List(Of Single) + Private TCtorque As New List(Of Single) + Private TCdim As Integer + + + 'Torque Converter Iteration Results + Public TCMin As Single + Public TCnUin As Single + Public TC_PeBrake As Single + Public TCMout As Single + Public TCnUout As Single + Public TCReduce As Boolean + Public TCNeutral As Boolean + Private TCnuMax As Single + + + Private MyFileList As List(Of String) + Public SavedInDeclMode As Boolean + + + Public Function CreateFileList() As Boolean + Dim i As Integer + + MyFileList = New List(Of String) + + 'Transm. Loss Maps + For i = 0 To GearCount() - 1 + If Not IsNumeric(Me.GetrMap(i, True)) Then + If Not MyFileList.Contains(Me.GetrMap(i)) Then MyFileList.Add(Me.GetrMap(i)) + End If + + '.vgbs + If Not Cfg.DeclMode Then + If i > 0 AndAlso Not MyFileList.Contains(Me.gs_files(i).FullPath) Then MyFileList.Add(Me.gs_files(i).FullPath) + End If + + Next + + 'Torque Converter + If Me.TCon Then MyFileList.Add(TCfile) + + Return True + + End Function + + + Public Sub New() + MyPath = "" + sFilePath = "" + SetDefault() + End Sub + + Private Sub SetDefault() + + ModelName = "" + GbxInertia = 0 + TracIntrSi = 0 + + Igetr = New List(Of Single) + IsTCgear = New List(Of Boolean) + GetrMaps = New List(Of cSubPath) + gs_files = New List(Of cSubPath) + + GetrEffDef = New List(Of Boolean) + GetrEff = New List(Of Single) + + MyGBmaps = Nothing + + gs_TorqueResv = 0 + gs_SkipGears = False + gs_ShiftTime = 0 + gs_TorqueResvStart = 0 + gs_StartSpeed = 0 + gs_StartAcc = 0 + gs_ShiftInside = False + + gs_Type = tGearbox.Manual + + TCon = False + TCrefrpm = 0 + TC_file.Clear() + + TCinertia = 0 + + SavedInDeclMode = False + + End Sub + + Public Function SaveFile() As Boolean + Dim i As Integer + Dim JSON As New cJSON + Dim dic As Dictionary(Of String, Object) + Dim dic0 As Dictionary(Of String, Object) + Dim ls As List(Of Object) + + 'Header + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + JSON.Content.Add("Header", dic) + + 'Body + dic = New Dictionary(Of String, Object) + + dic.Add("SavedInDeclMode", Cfg.DeclMode) + SavedInDeclMode = Cfg.DeclMode + + dic.Add("ModelName", ModelName) + + dic.Add("Inertia", GbxInertia) + dic.Add("TracInt", TracIntrSi) + + ls = New List(Of Object) + For i = 0 To Igetr.Count - 1 + dic0 = New Dictionary(Of String, Object) + dic0.Add("Ratio", Igetr(i)) + If IsNumeric(Me.GetrMap(i, True)) Then + dic0.Add("Efficiency", GetrMaps(i).PathOrDummy) + Else + dic0.Add("LossMap", GetrMaps(i).PathOrDummy) + End If + If i > 0 Then + dic0.Add("TCactive", IsTCgear(i)) + dic0.Add("ShiftPolygon", gs_files(i).PathOrDummy) + End If + + ls.Add(dic0) + Next + dic.Add("Gears", ls) + + dic.Add("TqReserve", gs_TorqueResv) + dic.Add("SkipGears", gs_SkipGears) + dic.Add("ShiftTime", gs_ShiftTime) + dic.Add("EaryShiftUp", gs_ShiftInside) + + dic.Add("StartTqReserve", gs_TorqueResvStart) + dic.Add("StartSpeed", gs_StartSpeed) + dic.Add("StartAcc", gs_StartAcc) + + dic.Add("GearboxType", GearboxConv(gs_Type)) + + dic0 = New Dictionary(Of String, Object) + dic0.Add("Enabled", TCon) + dic0.Add("File", TC_file.PathOrDummy) + dic0.Add("RefRPM", TCrefrpm) + dic0.Add("Inertia", TCinertia) + dic.Add("TorqueConverter", dic0) + + JSON.Content.Add("Body", dic) + + Return JSON.WriteFile(sFilePath) + + End Function + + Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean + Dim i As Integer + Dim MsgSrc As String + Dim JSON As New cJSON + Dim dic As Object + + MsgSrc = "GBX/ReadFile" + + SetDefault() + + If Not JSON.ReadFile(sFilePath) Then Return False + + Try + + FileVersion = JSON.Content("Header")("FileVersion") + + If FileVersion > 3 Then + SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode") + Else + SavedInDeclMode = Cfg.DeclMode + End If + + ModelName = JSON.Content("Body")("ModelName") + GbxInertia = JSON.Content("Body")("Inertia") + TracIntrSi = JSON.Content("Body")("TracInt") + + i = -1 + For Each dic In JSON.Content("Body")("Gears") + i += 1 + + Igetr.Add(dic("Ratio")) + GetrMaps.Add(New cSubPath) + + If dic("Efficiency") Is Nothing Then + GetrMaps(i).Init(MyPath, dic("LossMap")) + Else + GetrMaps(i).Init(MyPath, dic("Efficiency")) + End If + + + gs_files.Add(New cSubPath) + + If i = 0 Then + IsTCgear.Add(False) + gs_files(i).Init(MyPath, sKey.NoFile) + Else + IsTCgear.Add(dic("TCactive")) + If FileVersion < 2 Then + gs_files(i).Init(MyPath, JSON.Content("Body")("ShiftPolygons")) + Else + gs_files(i).Init(MyPath, dic("ShiftPolygon")) + End If + End If + + Next + + gs_TorqueResv = JSON.Content("Body")("TqReserve") + gs_SkipGears = JSON.Content("Body")("SkipGears") + gs_ShiftTime = JSON.Content("Body")("ShiftTime") + gs_TorqueResvStart = JSON.Content("Body")("StartTqReserve") + gs_StartSpeed = JSON.Content("Body")("StartSpeed") + gs_StartAcc = JSON.Content("Body")("StartAcc") + gs_ShiftInside = JSON.Content("Body")("EaryShiftUp") + + gs_Type = GearboxConv(JSON.Content("Body")("GearboxType").ToString) + + If JSON.Content("Body")("TorqueConverter") Is Nothing Then + TCon = False + Else + TCon = JSON.Content("Body")("TorqueConverter")("Enabled") + TC_file.Init(MyPath, JSON.Content("Body")("TorqueConverter")("File")) + TCrefrpm = JSON.Content("Body")("TorqueConverter")("RefRPM") + If FileVersion > 2 Then TCinertia = JSON.Content("Body")("TorqueConverter")("Inertia") + End If + + Catch ex As Exception + If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc) + Return False + End Try + + Return True + + + End Function + + Public Function DeclInit() As Boolean + Dim MsgSrc As String + Dim i As Int16 + + MsgSrc = "GBX/DeclInit" + + If gs_Type = tGearbox.Custom Or gs_Type = tGearbox.Automatic Then + WorkerMsg(tMsgID.Err, "Invalid gearbox type for Declaration Mode!", MsgSrc) + Return False + End If + + GbxInertia = cDeclaration.GbInertia + TracIntrSi = Declaration.TracInt(gs_Type) + gs_SkipGears = Declaration.SkipGears(gs_Type) + gs_ShiftTime = Declaration.ShiftTime(gs_Type) + gs_ShiftInside = Declaration.ShiftInside(gs_Type) + gs_TorqueResv = cDeclaration.TqResv + gs_TorqueResvStart = cDeclaration.TqResvStart + gs_StartSpeed = cDeclaration.StartSpeed + gs_StartAcc = cDeclaration.StartAcc + + TCon = (gs_Type = tGearbox.Automatic) + + For i = 1 To GearCount() + Shiftpolygons(i).SetGenericShiftPoly() + Next + + + Return True + + End Function + + Public Function TCinit() As Boolean + Dim file As New cFile_V3 + Dim MsgSrc As String + Dim line() As String + + MsgSrc = "GBX/TCinit" + + If Not file.OpenRead(TC_file.FullPath) Then + WorkerMsg(tMsgID.Err, "Torque Converter file not found! (" & TC_file.FullPath & ")", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + If TCrefrpm <= 0 Then + WorkerMsg(tMsgID.Err, "Torque converter reference torque invalid! (" & TCrefrpm & ")", MsgSrc) + Return False + End If + + TCnu.Clear() + TCmu.Clear() + TCtorque.Clear() + TCdim = -1 + + Try + Do While Not file.EndOfFile + line = file.ReadLine + If CSng(line(0)) < 1 Then + TCnu.Add(CSng(line(0))) + TCmu.Add(CSng(line(1))) + TCtorque.Add(CSng(line(2))) + TCdim += 1 + End If + Loop + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error while reading Torque Converter file! (" & ex.Message & ")", MsgSrc) + Return False + End Try + + file.Close() + + 'Check if more then one point + If TCdim < 1 Then + WorkerMsg(tMsgID.Err, "More points in Torque Converter file needed!", MsgSrc) + Return False + End If + + TCnuMax = TCnu(TCdim) + + + 'Add default values for nu>1 + If Not file.OpenRead(MyDeclPath & "DefaultTC.vtcc") Then + WorkerMsg(tMsgID.Err, "Default Torque Converter file not found!", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + Try + Do While Not file.EndOfFile + line = file.ReadLine + TCnu.Add(CSng(line(0))) + TCmu.Add(CSng(line(1))) + TCtorque.Add(CSng(line(2))) + TCdim += 1 + Loop + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error while reading Default Torque Converter file! (" & ex.Message & ")", MsgSrc) + Return False + End Try + + file.Close() + + Return True + + End Function + + Public Function TCiteration(ByVal Gear As Integer, ByVal nUout As Single, ByVal PeOut As Single, ByVal t As Integer, Optional ByVal LastnU As Single? = Nothing, Optional ByVal LastPe As Single? = Nothing) As Boolean + + Dim i As Integer + Dim iDim As Integer + Dim nUin As Single + Dim Mout As Single + Dim Min As Single + Dim MinMax As Single + Dim nuStep As Single + Dim nuMin As Single + Dim nuMax As Single + + Dim nu As Single + Dim mu As Single + + Dim MoutCalc As Single + + Dim Paux As Single + Dim PaMot As Single + Dim Pfull As Single + Dim PinMax As Single + + Dim nuList As New List(Of Single) + Dim McalcRatio As New List(Of Single) + + Dim McalcRatMax As Single + Dim ErrMin As Single + Dim iMin As Integer + + Dim Brake As Boolean + Dim FirstDone As Boolean + + Dim MsgSrc As String + + MsgSrc = "GBX/TCiteration/t= " & t + + TC_PeBrake = 0 + TCReduce = False + nuStep = 0.001 + Brake = False + TCNeutral = False + + + 'Power to torque + Mout = nPeToM(nUout, PeOut) + + + 'Set nu boundaries + If Mout < 0 Then + + 'Speed too low in motoring(check if nu=1 allows enough engine speed) + If nUout < ENG.Nidle Then + TCNeutral = True + Return True + End If + + nuMin = 1 + nuMax = Math.Min(TCnu(TCdim), nUout / ENG.Nidle) + + Else + nuMin = Math.Max(nUout / ENG.Nrated, TCnu(0)) + nuMax = Math.Min(TCnuMax, nUout / ENG.Nidle) + End If + + FirstDone = False + nu = nuMin - nuStep + iDim = -1 + Do While nu + nuStep <= nuMax + + 'nu + nu += nuStep + + 'Abort if nu<=0 + If nu <= 0 Then Continue Do + + 'mu + mu = fTCmu(nu) + + 'Abort if mu<=0 + If mu <= 0 Then Continue Do + + 'nIn + nUin = nUout / nu + + 'MinMax + Paux = MODdata.Px.fPaux(t, Math.Max(nUin, ENG.Nidle)) + If LastnU Is Nothing Then + PaMot = 0 + Else + PaMot = MODdata.Px.fPaMot(nUin, LastnU) + End If + If LastPe Is Nothing Then + Pfull = FLD(Gear).Pfull(nUin) + Else + Pfull = FLD(Gear).Pfull(nUin, LastPe) + End If + PinMax = 0.999 * (Pfull - Paux - PaMot) + MinMax = nPeToM(nUin, PinMax) + + 'Min + Min = Mout / mu + + 'Correct Min if too high + If Min > MinMax Then Continue Do + + 'Calculated output torque for given mu + MoutCalc = fTCtorque(nu, nUin) * mu + + 'Add to lists + nuList.Add(nu) + McalcRatio.Add(MoutCalc / Mout) + iDim += 1 + + 'Calc smallest error for each mu value + If FirstDone Then + If Math.Abs(1 - McalcRatio(i)) < ErrMin Then + ErrMin = Math.Abs(1 - McalcRatio(i)) + iMin = i + End If + If McalcRatio(i) > McalcRatMax Then McalcRatMax = McalcRatio(i) + Else + FirstDone = True + ErrMin = Math.Abs(1 - McalcRatio(i)) + iMin = i + McalcRatMax = McalcRatio(i) + End If + + 'Abort if error is small enough + If ErrMin <= DEV.TCiterPrec Then Exit Do + + Loop + + If iDim = -1 Then + TCReduce = True + Return True + End If + + + If ErrMin > DEV.TCiterPrec Then + + If McalcRatMax >= 1 Then + + 'Creeping... + FirstDone = False + For i = 0 To iDim + If McalcRatio(i) > 1 Then + If FirstDone Then + If Math.Abs(1 - McalcRatio(i)) < ErrMin Then + ErrMin = Math.Abs(1 - McalcRatio(i)) + iMin = i + End If + Else + FirstDone = True + ErrMin = Math.Abs(1 - McalcRatio(i)) + iMin = i + End If + End If + Next + + Brake = True + + Else + + If MoutCalc > 0 Then + TCReduce = True + Return True + End If + + + End If + + End If + + nu = nuList(iMin) + mu = fTCmu(nu) + TCnUin = nUout / nu + TCMout = fTCtorque(nu, TCnUin) * mu + TCMin = TCMout / mu + TCnUout = nUout + + If Brake Then TC_PeBrake = nMtoPe(TCnUout, Mout - TCMout) + + + Return True + + End Function + + + Private Function fTCmu(ByVal nu As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If TCnu(0) >= nu Then + If TCnu(0) > nu Then MODdata.ModErrors.TCextrapol = "nu= " & nu & " [n_out/n_in]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While TCnu(i) < nu And i < TCdim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If TCnu(i) < nu Then + MODdata.ModErrors.TCextrapol = "nu= " & nu & " [n_out/n_in]" + End If + +lbInt: + 'Interpolation + Return (nu - TCnu(i - 1)) * (TCmu(i) - TCmu(i - 1)) / (TCnu(i) - TCnu(i - 1)) + TCmu(i - 1) + + End Function + + Private Function fTCtorque(ByVal nu As Single, ByVal nUin As Single) As Single + Dim i As Int32 + Dim M0 As Single + + 'Extrapolation for x < x(1) + If TCnu(0) >= nu Then + If TCnu(0) > nu Then MODdata.ModErrors.TCextrapol = "nu= " & nu & " [n_out/n_in]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While TCnu(i) < nu And i < TCdim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If TCnu(i) < nu Then + MODdata.ModErrors.TCextrapol = "nu= " & nu & " [n_out/n_in]" + End If + +lbInt: + 'Interpolation + M0 = (nu - TCnu(i - 1)) * (TCtorque(i) - TCtorque(i - 1)) / (TCnu(i) - TCnu(i - 1)) + TCtorque(i - 1) + + Return M0 * (nUin / TCrefrpm) ^ 2 + + End Function + + Public Function GSinit() As Boolean + Dim i As Integer + + 'Set Gearbox Type-specific settings + If gs_Type <> tGearbox.Custom Then + + gs_ShiftInside = Declaration.ShiftInside(gs_Type) + TCon = (gs_Type = tGearbox.Automatic) + gs_SkipGears = Declaration.SkipGears(gs_Type) + + End If + + Shiftpolygons = New List(Of cShiftPolygon) + For i = 0 To Igetr.Count - 1 + Shiftpolygons.Add(New cShiftPolygon(gs_files(i).FullPath, i)) + If Not Cfg.DeclMode And i > 0 Then + 'Error-notification within ReadFile() + If Not Shiftpolygons(i).ReadFile() Then Return False + End If + Next + + Return True + + End Function + + Public Function GearCount() As Integer + Return Me.Igetr.Count - 1 + End Function + +#Region "Transmission Loss Maps" + + Public Function TrLossMapInit() As Boolean + Dim i As Short + Dim GBmap0 As cDelaunayMap + 'Dim n_norm As Double + 'Dim Pe_norm As Double + Dim file As cFile_V3 + Dim path As String + Dim line As String() + Dim l As Integer + Dim nU As Double + Dim M_in As Double + Dim M_loss As Double + Dim M_out As Double + + Dim dnU As Single + Dim dM As Single + Dim P_In As Single + Dim P_Loss As Single + Dim EffSum As Single + Dim Anz As Integer + Dim EffDiffSum As Single = 0 + Dim AnzDiff As Integer = 0 + + Dim MinG As Single + Dim plossG As Single + + Dim MsgSrc As String + + MyGBmaps = New List(Of cDelaunayMap) + file = New cFile_V3 + + For i = 0 To GBX.GearCount + + MsgSrc = "VEH/TrLossMapInit/G" & i + + If IsNumeric(GetrMap(i, True)) Then + GetrEffDef.Add(True) + GetrEff.Add(CSng(GBX.GetrMap(i, True))) + Else + GetrEffDef.Add(False) + GetrEff.Add(0) + End If + + If GetrEffDef(i) Then + + If GetrEff(i) > 1 Or GetrEff(i) <= 0 Then + WorkerMsg(tMsgID.Err, "Gearboy efficiency '" & GetrEff(i) & "' invalid!", MsgSrc) + Return False + End If + + MyGBmaps.Add(Nothing) + + Else + + path = GetrMaps(i).FullPath + + If Not file.OpenRead(path) Then + WorkerMsg(tMsgID.Err, "Cannot read file '" & path & "'!", MsgSrc) + MyGBmaps = Nothing + Return False + End If + + 'Skip header + file.ReadLine() + + GBmap0 = New cDelaunayMap + GBmap0.DualMode = True + + l = 0 'Nur für Fehler-Ausgabe + Do While Not file.EndOfFile + l += 1 + line = file.ReadLine + Try + + nU = CDbl(line(0)) + M_in = CDbl(line(1)) + M_loss = CDbl(line(2)) + + M_out = M_in - M_loss + + 'old version: Power instead of torque: GBmap0.AddPoints(nU, nMtoPe(nU, M_out), nMtoPe(nU, M_in)) + GBmap0.AddPoints(nU, M_out, M_in) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & l & " (" & path & ")", MsgSrc, path) + file.Close() + MyGBmaps = Nothing + Return False + End Try + Loop + + file.Close() + + If Not GBmap0.Triangulate Then + WorkerMsg(tMsgID.Err, "Map triangulation failed! File: " & path, MsgSrc, path) + MyGBmaps = Nothing + Return False + End If + + MyGBmaps.Add(GBmap0) + + 'Calculate average efficiency for fast approx. calculation + If i > 0 Then + + If GBX.IsTCgear(i) Then + + GetrEff(i) = -1 + + Else + + EffSum = 0 + Anz = 0 + + dnU = (2 / 3) * (ENG.Nrated - ENG.Nidle) / 10 + nU = ENG.Nidle + dnU + + Do While nU <= ENG.Nrated + + dM = nPeToM(nU, (2 / 3) * FLD(i).Pfull(nU) / 10) + M_in = nPeToM(nU, (1 / 3) * FLD(i).Pfull(nU)) + + Do While M_in <= nPeToM(nU, FLD(i).Pfull(nU)) + + P_In = nMtoPe(nU, M_in) + + P_Loss = IntpolPeLossFwd(i, nU, P_In, False) + + EffSum += (P_In - P_Loss) / P_In + Anz += 1 + + + plossG = P_Loss + MinG = M_in + + + 'Axle + P_In -= P_Loss + P_Loss = IntpolPeLossFwd(0, nU / GBX.Igetr(i), P_In, False) + EffDiffSum += (P_In - P_Loss) / P_In + AnzDiff += 1 + + If MODdata.ModErrors.TrLossMapExtr <> "" Then + WorkerMsg(tMsgID.Err, "Transmission loss map does not cover full engine operating range!", MsgSrc) + WorkerMsg(tMsgID.Err, MODdata.ModErrors.TrLossMapExtr, MsgSrc) + WorkerMsg(tMsgID.Err, "nU_In(GB)=" & nU & " [1/min]", MsgSrc) + WorkerMsg(tMsgID.Err, "M_In(GB)=" & MinG & " [Nm]", MsgSrc) + WorkerMsg(tMsgID.Err, "P_Loss(GB)=" & plossG & " [kW]", MsgSrc) + WorkerMsg(tMsgID.Err, "nU_In(axle)=" & CStr(nU / Igetr(i)) & " [1/min]", MsgSrc) + WorkerMsg(tMsgID.Err, "M_In(axle)=" & CStr(nPeToM(nU / Igetr(i), P_In)) & " [Nm]", MsgSrc) + WorkerMsg(tMsgID.Err, "P_Loss(axle)=" & P_Loss & " [kW]", MsgSrc) + Return False + End If + + M_in += dM + Loop + + + nU += dnU + Loop + + If Anz = 0 Then + WorkerMsg(tMsgID.Err, "Failed to calculate approx. transmission losses!", MsgSrc) + Return False + End If + + GetrEff(i) = EffSum / Anz + + End If + + End If + + + End If + + Next + + If Not GetrEffDef(0) Then + GetrEff(0) = EffDiffSum / AnzDiff + End If + + + Return True + + End Function + + Public Function IntpolPeLoss(ByVal Gear As Integer, ByVal nU As Double, ByVal PeOut As Double, ByVal Approx As Boolean) As Double + + Dim PeIn As Double + Dim WG As Double + Dim GBmap As cDelaunayMap + Dim i As Integer + Dim Ab As Double + Dim AbMin As Double + Dim iMin As Integer + Dim PeOutX As Double + Dim GrTxt As String + Dim Ploss As Single + + Dim MsgSrc As String + + MsgSrc = "VEH/TrLossMapInterpol/G" & Gear + + If Gear = 0 Then + GrTxt = "A" + Else + GrTxt = Gear.ToString + End If + + If GetrEffDef(Gear) Or (Approx AndAlso GetrEff(Gear) > 0) Then + + If PeOut > 0 Then + PeIn = PeOut / GetrEff(Gear) + Else + PeIn = PeOut * GetrEff(Gear) + End If + Ploss = PeIn - PeOut + + Else + + GBmap = MyGBmaps(Gear) + + + 'Interpolate with Original Values + PeIn = nMtoPe(nU, GBmap.Intpol(nU, nPeToM(nU, PeOut))) + + If GBmap.ExtrapolError Then + + 'If error: try extrapolation + + 'Search for the nearest Map point + AbMin = ((GBmap.ptList(0).X - nU) ^ 2 + (GBmap.ptList(0).Y - nPeToM(nU, PeOut)) ^ 2) ^ 0.5 + iMin = 0 + For i = 1 To GBmap.ptDim + Ab = ((GBmap.ptList(i).X - nU) ^ 2 + (GBmap.ptList(i).Y - nPeToM(nU, PeOut)) ^ 2) ^ 0.5 + If Ab < AbMin Then + AbMin = Ab + iMin = i + End If + Next + + PeOutX = nMtoPe(nU, GBmap.ptList(iMin).Y) + PeIn = nMtoPe(nU, GBmap.ptList(iMin).Z) + + 'Efficiency + If PeOutX > 0 Then + If PeIn > 0 Then + + WG = PeOutX / PeIn + PeIn = PeOut / WG + Ploss = PeIn - PeOut + + Else + + 'Drag => Drive: ERROR! + WorkerMsg(tMsgID.Err, "Transmission Loss Map invalid! Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], PeIn=" & PeIn.ToString("0.0") & " [kW], PeOut=" & PeOutX.ToString("0.0") & " [kW]", MsgSrc) + WorkerAbort() + Return 0 + + End If + + ElseIf PeOutX < 0 Then + + If PeIn > 0 Then + + WG = (PeIn - (PeIn - PeOutX)) / PeIn + PeIn = PeOut / WG + Ploss = PeIn - PeOut + + ElseIf PeIn < 0 Then + + WG = PeIn / PeOutX + PeIn = PeOut * WG + Ploss = PeIn - PeOut + + Else + + Ploss = Math.Abs(PeOut) + + End If + + + Else + + If PeIn > 0 Then + + Ploss = PeIn + + ElseIf PeIn < 0 Then + + 'Drag => Zero: ERROR! + WorkerMsg(tMsgID.Err, "Transmission Loss Map invalid! Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], PeIn=" & PeIn.ToString("0.0") & " [kW], PeOut=" & PeOutX.ToString("0.0") & " [kW]", MsgSrc) + WorkerAbort() + Return 0 + Else + + Ploss = Math.Abs(PeOut) + + End If + + End If + + MODdata.ModErrors.TrLossMapExtr = "Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], MeOut=" & nPeToM(nU, PeOut).ToString("0.00") & " [Nm]" + + Else + + Ploss = PeIn - PeOut + + + End If + + End If + + Return Math.Max(Ploss, 0) + + + End Function + + Public Function IntpolPeLossFwd(ByVal Gear As Integer, ByVal nU As Double, ByVal PeIn As Double, ByVal Approx As Boolean) As Double + + Dim PeOut As Double + Dim WG As Double + Dim GBmap As cDelaunayMap + Dim i As Integer + Dim Ab As Double + Dim AbMin As Double + Dim iMin As Integer + Dim PeInX As Double + Dim GrTxt As String + + Dim MsgSrc As String + + MsgSrc = "VEH/TrLossMapInterpolFwd/G" & Gear + + If Gear = 0 Then + GrTxt = "A" + Else + GrTxt = Gear.ToString + End If + + If GetrEffDef(Gear) Or (Approx AndAlso GetrEff(Gear) > 0) Then + + If PeIn > 0 Then + PeOut = PeIn * GetrEff(Gear) + Else + PeOut = PeIn / GetrEff(Gear) + End If + + Else + + GBmap = MyGBmaps(Gear) + + + 'Interpolate with original values + PeOut = nMtoPe(nU, GBmap.IntpolXZ(nU, nPeToM(nU, PeIn))) + + If GBmap.ExtrapolError Then + + 'If error: try extrapolation + + 'Search for the nearest Map-point + AbMin = ((GBmap.ptList(0).X - nU) ^ 2 + (GBmap.ptList(0).Z - nPeToM(nU, PeIn)) ^ 2) ^ 0.5 + iMin = 0 + For i = 1 To GBmap.ptDim + Ab = ((GBmap.ptList(i).X - nU) ^ 2 + (GBmap.ptList(i).Z - nPeToM(nU, PeIn)) ^ 2) ^ 0.5 + If Ab < AbMin Then + AbMin = Ab + iMin = i + End If + Next + + PeInX = nMtoPe(nU, GBmap.ptList(iMin).Z) + PeOut = nMtoPe(nU, GBmap.ptList(iMin).Y) + + 'Efficiency + If PeOut > 0 Then + If PeInX > 0 Then + + 'Drivetrain => Drivetrain + WG = PeOut / PeInX + + Else + + 'Drag => Drivetrain: ERROR! + WorkerMsg(tMsgID.Err, "Transmission Loss Map invalid! Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], PeIn=" & PeInX.ToString("0.00") & " [kW], PeOut=" & PeOut.ToString("0.00") & " [kW] (fwd)", MsgSrc) + WorkerAbort() + Return 0 + + End If + + Else + If PeInX > 0 Then + + WorkerMsg(tMsgID.Warn, "Change of sign in Transmission Loss Map! Set efficiency to 10%. Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], PeIn=" & PeInX.ToString("0.00") & " [kW], PeOut=" & PeOut.ToString("0.00") & " [kW] (fwd)", MsgSrc) + 'WorkerAbort() + WG = 0.1 + + Else + + 'Drag => Drag + WG = PeInX / PeOut + + + End If + End If + + 'Calculate efficiency with PeIn for original PeOut + PeOut = PeIn * WG + + MODdata.ModErrors.TrLossMapExtr = "Gear= " & GrTxt & ", nU= " & nU.ToString("0.00") & " [1/min], MeIn=" & nPeToM(nU, PeIn).ToString("0.00") & " [Nm] (fwd)" + + End If + + End If + + Return Math.Max(PeIn - PeOut, 0) + + End Function + + + +#End Region + + Public ReadOnly Property FileList As List(Of String) + Get + Return MyFileList + End Get + End Property + + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + If sFilePath = "" Then + MyPath = "" + Else + MyPath = IO.Path.GetDirectoryName(sFilePath) & "\" + End If + End Set + End Property + + Public Property GetrMap(ByVal x As Short, Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return GetrMaps(x).OriginalPath + Else + Return GetrMaps(x).FullPath + End If + End Get + Set(ByVal value As String) + GetrMaps(x).Init(MyPath, value) + End Set + End Property + + Public Property gsFile(ByVal x As Short, Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return gs_files(x).OriginalPath + Else + Return gs_files(x).FullPath + End If + End Get + Set(value As String) + gs_files(x).Init(MyPath, value) + End Set + End Property + + + + Public Property TCfile(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return TC_file.OriginalPath + Else + Return TC_file.FullPath + End If + End Get + Set(value As String) + TC_file.Init(MyPath, value) + End Set + End Property + + + Public Class cShiftPolygon + + Private Filepath As String + Public MyGear As Integer + + Public gs_TqUp As New List(Of Single) + Public gs_TqDown As New List(Of Single) + Public gs_nUup As New List(Of Single) + Public gs_nUdown As New List(Of Single) + Private gs_Dup As Integer = -1 + Private gs_Ddown As Integer = -1 + + Public Sub New(ByVal Path As String, ByVal Gear As Integer) + Filepath = Path + MyGear = Gear + End Sub + + Public Function ReadFile() As Boolean + Dim file As cFile_V3 + Dim line As String() + + Dim MsgSrc As String + + MsgSrc = "GBX/GSinit/ShiftPolygon.Init" + + 'Check if file exists + If Not IO.File.Exists(Filepath) Then + WorkerMsg(tMsgID.Err, "Gear Shift Polygon File not found! '" & Filepath & "'", MsgSrc) + Return False + End If + + 'Init file instance + file = New cFile_V3 + + 'Open file + If Not file.OpenRead(Filepath) Then + WorkerMsg(tMsgID.Err, "Failed to load Gear Shift Polygon File! '" & Filepath & "'", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + 'Clear lists + gs_TqUp.Clear() + gs_TqDown.Clear() + gs_nUdown.Clear() + gs_nUup.Clear() + gs_Dup = -1 + + 'Read file + Try + Do While Not file.EndOfFile + line = file.ReadLine + gs_Dup += 1 + gs_TqUp.Add(CSng(line(0))) + gs_TqDown.Add(CSng(line(0))) + gs_nUdown.Add(CSng(line(1))) + gs_nUup.Add(CSng(line(2))) + Loop + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error while reading Gear Shift Polygon File! (" & ex.Message & ")", MsgSrc) + Return False + End Try + + 'Check if more then one point + If gs_Dup < 1 Then + WorkerMsg(tMsgID.Err, "More points in Gear Shift Polygon File needed!", MsgSrc) + Return False + End If + + gs_Ddown = gs_Dup + + Return True + + End Function + + + Public Sub SetGenericShiftPoly(Optional ByRef fld0 As cFLD = Nothing, Optional ByVal nidle As Single = -1) + Dim Tmax As Single + + 'Clear lists + gs_TqUp.Clear() + gs_TqDown.Clear() + gs_nUdown.Clear() + gs_nUup.Clear() + + If fld0 Is Nothing Then fld0 = FLD(MyGear) + If nidle < 0 Then nidle = ENG.Nidle + + Tmax = fld0.Tmax + + gs_nUdown.Add(nidle) + gs_nUdown.Add(nidle) + gs_nUdown.Add((fld0.Npref + fld0.Nlo) / 2) + + gs_TqDown.Add(0) + gs_TqDown.Add(Tmax * nidle / (fld0.Npref + fld0.Nlo - nidle)) + gs_TqDown.Add(Tmax) + + gs_nUup.Add(fld0.Npref) + gs_nUup.Add(fld0.Npref) + gs_nUup.Add(fld0.N95h) + + gs_TqUp.Add(0) + gs_TqUp.Add(Tmax * (fld0.Npref - nidle) / (fld0.N95h - nidle)) + gs_TqUp.Add(Tmax) + + gs_Ddown = 2 + gs_Dup = 2 + + End Sub + + Public Function fGSnUdown(ByVal Tq As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If gs_TqDown(0) >= Tq Then + i = 1 + GoTo lbInt + End If + + i = 0 + Do While gs_TqDown(i) < Tq And i < gs_Ddown + i += 1 + Loop + + +lbInt: + 'Interpolation + Return (Tq - gs_TqDown(i - 1)) * (gs_nUdown(i) - gs_nUdown(i - 1)) / (gs_TqDown(i) - gs_TqDown(i - 1)) + gs_nUdown(i - 1) + + End Function + + Public Function fGSnUup(ByVal Tq As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If gs_TqUp(0) >= Tq Then + i = 1 + GoTo lbInt + End If + + i = 0 + Do While gs_TqUp(i) < Tq And i < gs_Dup + i += 1 + Loop + + +lbInt: + 'Interpolation + Return (Tq - gs_TqUp(i - 1)) * (gs_nUup(i) - gs_nUup(i - 1)) / (gs_TqUp(i) - gs_TqUp(i - 1)) + gs_nUup(i - 1) + + End Function + + + + End Class + + + +End Class diff --git a/VECTO/Input Files/cMAP.vb b/VECTO/Input Files/cMAP.vb new file mode 100644 index 0000000000000000000000000000000000000000..868e0eae183ca00c985ab8e02d2929bfb833997d --- /dev/null +++ b/VECTO/Input Files/cMAP.vb @@ -0,0 +1,198 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cMAP + + Private LnU As List(Of Single) + Private LTq As List(Of Single) + Private lFC As List(Of Single) + + Private sFilePath As String + Private iMapDim As Integer + + Private FuelMap As cDelaunayMap + + Private Sub ResetMe() + lFC = Nothing + LTq = Nothing + LnU = Nothing + iMapDim = -1 + FuelMap = New cDelaunayMap + End Sub + + Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean + Dim file As cFile_V3 + Dim line As String() + Dim nU As Double + Dim MsgSrc As String + + + MsgSrc = "Main/ReadInp/MAP" + + 'Reset + ResetMe() + + 'Stop if there's no file + If sFilePath = "" OrElse Not IO.File.Exists(sFilePath) Then + If ShowMsg Then WorkerMsg(tMsgID.Err, "Map file not found! (" & sFilePath & ")", MsgSrc) + Return False + End If + + 'Open file + file = New cFile_V3 + If Not file.OpenRead(sFilePath) Then + file = Nothing + If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to open file (" & sFilePath & ") !", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + 'Initi Lists (before version check so ReadOldFormat works) + lFC = New System.Collections.Generic.List(Of Single) + LTq = New System.Collections.Generic.List(Of Single) + LnU = New System.Collections.Generic.List(Of Single) + + Try + Do While Not file.EndOfFile + + 'Line read + line = file.ReadLine + + 'Line counter up (was reset in ResetMe) + iMapDim += 1 + + 'Revolutions + nU = CDbl(line(0)) + + LnU.Add(nU) + + 'Power + LTq.Add(line(1)) + + 'FC + 'Check sign + If CSng(line(2)) < 0 Then + file.Close() + If ShowMsg Then WorkerMsg(tMsgID.Err, "FC < 0 in map at " & nU & " [1/min], " & line(1) & " [Nm]", MsgSrc) + Return False + End If + + lFC.Add(CSng(line(2))) + + + Loop + Catch ex As Exception + + If ShowMsg Then WorkerMsg(tMsgID.Err, "Error during file read! Line number " & iMapDim + 1 & " (" & sFilePath & ")", MsgSrc, sFilePath) + GoTo lbEr + + End Try + + 'Close file + file.Close() + + file = Nothing + + Return True + + + 'ERROR-label for clean Abort +lbEr: + file.Close() + file = Nothing + + Return False + + End Function + + Public Function Triangulate() As Boolean + Dim i As Integer + + Dim MsgSrc As String + + MsgSrc = "MAP/Norm" + + 'FC Delauney + For i = 0 To iMapDim + FuelMap.AddPoints(LnU(i), LTq(i), lFC(i)) + Next + + Return FuelMap.Triangulate() + + End Function + + + Public Function fFCdelaunay_Intp(ByVal nU As Single, ByVal Tq As Single) As Single + Dim val As Single + + val = FuelMap.Intpol(nU, Tq) + + If FuelMap.ExtrapolError Then + WorkerMsg(tMsgID.Err, "Cannot extrapolate FC map! n= " & nU.ToString("0.0") & " [1/min], Me= " & Tq.ToString("0.0") & " [Nm]", "MAP/FC_Intp") + Return -10000 + Else + Return val + End If + + End Function + +#Region "Properties" + + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + End Set + End Property + + Public ReadOnly Property MapDim As Integer + Get + Return iMapDim + End Get + End Property + + Public ReadOnly Property Tq As List(Of Single) + Get + Return LTq + End Get + End Property + + Public ReadOnly Property FC As List(Of Single) + Get + Return lFC + End Get + End Property + + Public ReadOnly Property nU As List(Of Single) + Get + Return LnU + End Get + End Property + +#End Region + + + + +End Class + + + + + + + + diff --git a/VECTO/Input Files/cSubPath.vb b/VECTO/Input Files/cSubPath.vb new file mode 100644 index 0000000000000000000000000000000000000000..32d2c1442b78eb37155fff069f2dfe9d23f1880e --- /dev/null +++ b/VECTO/Input Files/cSubPath.vb @@ -0,0 +1,80 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + + +Public Class cSubPath + + Private sFullPath As String + Private sOglPath As String + Private bDefined As Boolean + + Public Sub New() + bDefined = False + End Sub + + Public Sub Init(ByVal ParentDir As String, ByVal Path As String) + If fFileOrNot(Path) = "" Then + bDefined = False + Else + bDefined = True + sOglPath = Path + sFullPath = fFileRepl(Path, ParentDir) + End If + End Sub + + Private Function fFileOrNot(ByVal f As String) As String + If Trim(UCase(f)) = sKey.NoFile Then + Return "" + Else + Return f + End If + End Function + + + Public Sub Clear() + bDefined = False + End Sub + + Public ReadOnly Property FullPath() As String + Get + If bDefined Then + Return sFullPath + Else + Return "" + End If + End Get + End Property + + Public ReadOnly Property OriginalPath() As String + Get + If bDefined Then + Return sOglPath + Else + Return "" + End If + End Get + End Property + + Public ReadOnly Property PathOrDummy() As String + Get + If bDefined Then + Return sOglPath + Else + Return sKey.NoFile + End If + End Get + End Property + + + + + +End Class diff --git a/VECTO/Input Files/cVECTO.vb b/VECTO/Input Files/cVECTO.vb new file mode 100644 index 0000000000000000000000000000000000000000..60186ceda9dce982b653e455bd64f85277114b2d --- /dev/null +++ b/VECTO/Input Files/cVECTO.vb @@ -0,0 +1,855 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports VectoAuxiliaries.ElectricalConsumers + +Imports System.Collections.Generic + +Public Class cVECTO + + Private Const FormatVersion As Short = 2 + Private FileVersion As Short + + Private sFilePath As String + + Private MyPath As String + + 'Input parameters + Private stPathVEH As cSubPath + Private stPathENG As cSubPath + Private stPathGBX As cSubPath + + Private boStartStop As Boolean + Private siStStV As Single + Private siStStT As Single + Public StStDelay As Integer + + Private stDesMaxFile As cSubPath + Private laDesV As List(Of Single) + Private laDesMax As List(Of Single) + Private laDesMin As List(Of Single) + Private DesMaxDim As Integer + + Public AuxPaths As Dictionary(Of String, cAuxEntry) + Public AuxRefs As Dictionary(Of String, cAux) 'Alle Nebenverbraucher die in der Veh-Datei UND im Zyklus definiert sind + Public AuxDef As Boolean 'True wenn ein oder mehrere Nebenverbraucher definiert sind + Public EStechs As List(Of String) + + Public CycleFiles As List(Of cSubPath) + + Public EngOnly As Boolean + + Public a_lookahead As Single + Public vMin As Single + Public vMinLA As Single + Public LookAheadOn As Boolean + Public OverSpeedOn As Boolean + Public OverSpeed As Single + Public UnderSpeed As Single + Public EcoRollOn As Boolean + + Private MyFileList As List(Of String) + + Public SavedInDeclMode As Boolean + + + + + Public Function CreateFileList() As Boolean + Dim Aux0 As cAuxEntry + Dim sb As cSubPath + Dim str As String + + MyFileList = New List(Of String) + + '.vecto + MyFileList.Add(Me.sFilePath) + + 'Veh + If Not Me.EngOnly Then + MyFileList.Add(Me.PathVEH) + + If Not VEH.CreateFileList Then Return False + For Each str In VEH.FileList + MyFileList.Add(str) + Next + End If + + 'Eng + MyFileList.Add(Me.PathENG) + + If Not ENG.CreateFileList Then Return False + For Each str In ENG.FileList + MyFileList.Add(str) + Next + + If Not Me.EngOnly Then + + 'Gbx + MyFileList.Add(Me.PathGBX) + + If Not GBX.CreateFileList Then Return False + For Each str In GBX.FileList + MyFileList.Add(str) + Next + + 'Aux + If AuxDef And Not Cfg.DeclMode Then + For Each Aux0 In Me.AuxPaths.Values + MyFileList.Add(Aux0.Path.FullPath) + Next + End If + + '.vacc + MyFileList.Add(Me.stDesMaxFile.FullPath) + + End If + + 'Cycles + For Each sb In Me.CycleFiles + MyFileList.Add(sb.FullPath) + Next + + + Return True + + End Function + + Public Sub New() + + MyPath = "" + sFilePath = "" + + stPathVEH = New cSubPath + stPathENG = New cSubPath + stPathGBX = New cSubPath + + stDesMaxFile = New cSubPath + + laDesV = New List(Of Single) + laDesMax = New List(Of Single) + laDesMin = New List(Of Single) + + AuxPaths = New Dictionary(Of String, cAuxEntry) + AuxRefs = New Dictionary(Of String, cAux) + AuxDef = False + EStechs = New List(Of String) + + CycleFiles = New List(Of cSubPath) + + End Sub + + Public Function SaveFile() As Boolean + Dim AuxEntryKV As KeyValuePair(Of String, cAuxEntry) + 'Dim s As String + Dim sb As cSubPath + Dim JSON As New cJSON + Dim ls As List(Of Object) + Dim dic As Dictionary(Of String, Object) + Dim dic0 As Dictionary(Of String, Object) + + 'Header + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + JSON.Content.Add("Header", dic) + + 'Body + dic0 = New Dictionary(Of String, Object) + + dic0.Add("SavedInDeclMode", Cfg.DeclMode) + SavedInDeclMode = Cfg.DeclMode + + 'Main Files + dic0.Add("VehicleFile", stPathVEH.PathOrDummy) + dic0.Add("EngineFile", stPathENG.PathOrDummy) + dic0.Add("GearboxFile", stPathGBX.PathOrDummy) + + 'Cycles + If CycleFiles.Count > 0 Then + ls = New List(Of Object) + For Each sb In CycleFiles + ls.Add(sb.PathOrDummy) + Next + dic0.Add("Cycles", ls) + End If + + 'Limited Information regarding Auxillaries under 2.0.4-Beta release, + + 'Aux + If AuxPaths.Count > 0 Then + ls = New List(Of Object) + For Each AuxEntryKV In AuxPaths + dic = New Dictionary(Of String, Object) + dic.Add("ID", Trim(UCase(AuxEntryKV.Key))) + dic.Add("Type", AuxEntryKV.Value.Type) + dic.Add("Path", AuxEntryKV.Value.Path.PathOrDummy) + dic.Add("Technology", AuxEntryKV.Value.TechStr) + + 'TB 29/9/2014 - Augmentation of Auxillary information to be stored in the configuration file post 2.0.4-Beta release + + 'TODO - TB BIG CHANGE HERE ELECTRICAL SYSTEM + If AuxEntryKV.Key = sKey.AUX.ElecSys Then + dic.Add("PulleyGearEfficiencyES", AuxEntryKV.Value.PulleyGearEfficiencyES) + dic.Add("PulleyGearRatioES", AuxEntryKV.Value.PulleyGearRatioES) + dic.Add("TechList", EStechs) + dic.Add("ConsumersES", AuxEntryKV.Value.ConsumerListES) + End If + + 'TODO - TB BIG CHANGE HERE ( HVAC SYSTEM ) + If AuxEntryKV.Key = sKey.AUX.HVAC Then + dic.Add("PulleyGearEfficiencyHVAC", AuxEntryKV.Value.PulleyGearEfficiencyHVAC) + dic.Add("PulleyGearRatioHVAC", AuxEntryKV.Value.PulleyGearRatioHVAC) + dic.Add("MapInputs", AuxEntryKV.Value.HVACMapInputs) + End If + + 'TODO - TB BIG CHANGE HERE ( PNEUMATIC SYSTEM ) + If AuxEntryKV.Key = sKey.AUX.PneumSys Then + dic.Add("PulleyGearEfficiencyPS", AuxEntryKV.Value.PulleyGearEfficiencyPS) + dic.Add("PulleyGearRatioPS", AuxEntryKV.Value.PulleyGearRatioPS) + dic.Add("ConsumersPS", AuxEntryKV.Value.ConsumerListPS) + + End If + + ls.Add(dic) + Next + dic0.Add("Aux", ls) + End If + + 'VACC + dic0.Add("VACC", stDesMaxFile.PathOrDummy) + + 'EngineOnlyMode + dic0.Add("EngineOnlyMode", EngOnly) + + 'Start Stop + dic = New Dictionary(Of String, Object) + dic.Add("Enabled", boStartStop) + dic.Add("MaxSpeed", siStStV) + dic.Add("MinTime", siStStT) + dic.Add("Delay", StStDelay) + dic0.Add("StartStop", dic) + + 'LAC + dic = New Dictionary(Of String, Object) + dic.Add("Enabled", LookAheadOn) + dic.Add("Dec", a_lookahead) + dic.Add("MinSpeed", vMinLA) + dic0.Add("LAC", dic) + + 'Overspeed / EcoRoll + dic = New Dictionary(Of String, Object) + If EcoRollOn Then + dic.Add("Mode", "EcoRoll") + ElseIf OverSpeedOn Then + dic.Add("Mode", "OverSpeed") + Else + dic.Add("Mode", "Off") + End If + dic.Add("MinSpeed", vMin) + dic.Add("OverSpeed", OverSpeed) + dic.Add("UnderSpeed", UnderSpeed) + dic0.Add("OverSpeedEcoRoll", dic) + + + JSON.Content.Add("Body", dic0) + + Return JSON.WriteFile(sFilePath) + + End Function + + Public Function ReadFile() As Boolean + Dim AuxEntry As cAuxEntry + Dim AuxID As String + Dim MsgSrc As String + Dim SubPath As cSubPath + Dim JSON As New cJSON + Dim str As String + Dim dic As Object + + MsgSrc = "Main/ReadInp/GEN" + + SetDefault() + + If Not JSON.ReadFile(sFilePath) Then Return False + + Try + + FileVersion = JSON.Content("Header")("FileVersion") + + If FileVersion > 1 Then + SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode") + Else + SavedInDeclMode = Cfg.DeclMode + End If + + If Not JSON.Content("Body")("VehicleFile") Is Nothing Then stPathVEH.Init(MyPath, JSON.Content("Body")("VehicleFile")) + + stPathENG.Init(MyPath, JSON.Content("Body")("EngineFile")) + + If Not JSON.Content("Body")("GearboxFile") Is Nothing Then stPathGBX.Init(MyPath, JSON.Content("Body")("GearboxFile")) + + If Not JSON.Content("Body")("Cycles") Is Nothing Then + For Each str In JSON.Content("Body")("Cycles") + SubPath = New cSubPath + SubPath.Init(MyPath, str) + CycleFiles.Add(SubPath) + Next + End If + + If Not JSON.Content("Body")("Aux") Is Nothing Then + For Each dic In JSON.Content("Body")("Aux") + + AuxID = UCase(Trim(dic("ID").ToString)) + + If AuxPaths.ContainsKey(AuxID) Then + WorkerMsg(tMsgID.Err, "Multiple definitions of the same auxiliary type (" & AuxID & ")!", MsgSrc) + Return False + End If + + AuxEntry = New cAuxEntry + + AuxEntry.Type = dic("Type") + AuxEntry.Path.Init(MyPath, dic("Path")) + + + If Not dic("Technology") Is Nothing Then AuxEntry.TechStr = dic("Technology") + + AuxPaths.Add(AuxID, AuxEntry) + + AuxDef = True + + If AuxID = sKey.AUX.ElecSys Then + If Not dic("TechList") Is Nothing Then + For Each str In dic("TechList") + EStechs.Add(str) + Next + End If + End If + + 'TB 29/9/2014 Here is where we read the Auxilliary Augmented Properties where they appear. + ' + + Next + End If + + If Not JSON.Content("Body")("VACC") Is Nothing Then stDesMaxFile.Init(MyPath, JSON.Content("Body")("VACC")) + + EngOnly = JSON.Content("Body")("EngineOnlyMode") + + If Not JSON.Content("Body")("StartStop") Is Nothing Then + dic = JSON.Content("Body")("StartStop") + boStartStop = dic("Enabled") + siStStV = dic("MaxSpeed") + siStStT = dic("MinTime") + StStDelay = dic("Delay") + Else + boStartStop = False + End If + + If Not JSON.Content("Body")("LAC") Is Nothing Then + dic = JSON.Content("Body")("LAC") + LookAheadOn = dic("Enabled") + a_lookahead = dic("Dec") + vMinLA = dic("MinSpeed") + Else + LookAheadOn = False + End If + + If Not JSON.Content("Body")("OverSpeedEcoRoll") Is Nothing Then + + dic = JSON.Content("Body")("OverSpeedEcoRoll") + + Select Case UCase(dic("Mode").ToString).Trim + Case "ECOROLL" + OverSpeedOn = False + EcoRollOn = True + + Case "OVERSPEED" + OverSpeedOn = True + EcoRollOn = False + + Case "OFF" + OverSpeedOn = False + EcoRollOn = False + + Case Else + WorkerMsg(tMsgID.Err, "Value '" & dic("Mode") & "' is not valid for OverSpeedEcoRoll/Mode!", MsgSrc) + Return False + End Select + + vMin = dic("MinSpeed") + OverSpeed = dic("OverSpeed") + If Not dic("UnderSpeed") Is Nothing Then UnderSpeed = dic("UnderSpeed") + + Else + OverSpeedOn = False + EcoRollOn = False + End If + + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to read VECTO file! " & ex.Message, MsgSrc) + Return False + End Try + + + Return True + + + End Function + + Private Sub SetDefault() + boStartStop = False + siStStV = 5 + siStStT = 5 + StStDelay = 0 + FileVersion = 0 + + stPathVEH.Clear() + stPathENG.Clear() + CycleFiles.Clear() + stPathGBX.Clear() + + stDesMaxFile.Clear() + laDesV.Clear() + laDesMax.Clear() + laDesMin.Clear() + DesMaxDim = -1 + + AuxPaths.Clear() + AuxRefs.Clear() + AuxDef = False + EStechs.Clear() + + EngOnly = False + + a_lookahead = 0 + vMin = 0 + LookAheadOn = True + OverSpeedOn = False + EcoRollOn = False + OverSpeed = 0 + UnderSpeed = 0 + vMinLA = 0 + + SavedInDeclMode = False + + End Sub + + Public Function DeclInit() As Boolean + + Dim cl As List(Of String) + Dim s As String + Dim SubPath As cSubPath + Dim MsgSrc As String + + MsgSrc = "VECTO/DeclInit" + + EngOnly = False + + CycleFiles.Clear() + + cl = Declaration.SegRef.GetCycles + + For Each s In cl + SubPath = New cSubPath + SubPath.Init(MyPath, s) + CycleFiles.Add(SubPath) + Next + + stDesMaxFile.Init(MyPath, Declaration.SegRef.VACCfile) + + siStStV = cDeclaration.SSspeed + siStStT = cDeclaration.SStime + StStDelay = cDeclaration.SSdelay + + If Not EcoRollOn Then OverSpeedOn = True + + OverSpeed = cDeclaration.Overspeed + UnderSpeed = cDeclaration.Underspeed + vMin = cDeclaration.ECvmin + + LookAheadOn = True + a_lookahead = cDeclaration.LACa + vMinLA = cDeclaration.LACvmin + + 'No need to check Aux (AuxDef). Will be checked in cDeclaration.CalcInitLoad + + Return True + + End Function + + 'This Sub reads those Input-files that do not have their own class, etc. + Public Function Init() As Boolean + Dim file As cFile_V3 + Dim line As String() + + Dim MsgSrc As String + + MsgSrc = "VECTO/Init" + + If Not EngOnly Then + + file = New cFile_V3 + + If Not file.OpenRead(stDesMaxFile.FullPath) Then + WorkerMsg(tMsgID.Err, "Can't read .vacc file (" & stDesMaxFile.FullPath & ")", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + laDesV.Clear() + laDesMax.Clear() + laDesMin.Clear() + DesMaxDim = -1 + Try + + Do While Not file.EndOfFile + + DesMaxDim += 1 + + line = file.ReadLine + + laDesV.Add(CSng(line(0)) / 3.6) 'km/h => m/s !!!! + laDesMax.Add(CSng(line(1))) + laDesMin.Add(CSng(line(2))) + + Loop + + Catch ex As Exception + + file.Close() + WorkerMsg(tMsgID.Err, "Error in .vacc file. " & ex.Message & " (" & stDesMaxFile.FullPath & ")", MsgSrc, stDesMaxFile.FullPath) + Return False + + End Try + + file.Close() + + End If + + Return True + + End Function + +#Region "Aux" + + Public Function AuxInit() As Boolean + + Dim Aux0 As cAux + Dim AuxPathKV As KeyValuePair(Of String, cAuxEntry) + Dim DRIauxcheck As New Dictionary(Of String, Boolean) + Dim AuxID As String + + Dim MsgSrc As String + + MsgSrc = "VEH/AuxInit" + + AuxRefs = New Dictionary(Of String, cAux) + + If Cfg.DeclMode Then + + For Each AuxPathKV In AuxPaths + AuxRefs.Add(AuxPathKV.Key, Nothing) + Next + + Return True + + End If + + + If DRI.AuxDef Xor AuxDef Then + + If AuxDef Then + WorkerMsg(tMsgID.Err, "No auxiliary input defined in driving cycle!", MsgSrc) + Return False + Else + WorkerMsg(tMsgID.Warn, "No auxiliary defined in vehicle file! Psupply input will be ignored!", MsgSrc) + Return True + End If + + End If + + If Not (DRI.AuxDef Or AuxDef) Then Return True + + + For Each AuxID In DRI.AuxComponents.Keys + DRIauxcheck.Add(AuxID, False) + Next + + For Each AuxPathKV In AuxPaths + + MsgSrc = "VEH/AuxInit/" & AuxPathKV.Key + + If Not DRI.AuxComponents.ContainsKey(AuxPathKV.Key) Then + WorkerMsg(tMsgID.Err, "No Psupply input defined in driving cycle for auxiliary '" & AuxPathKV.Key & "'!", MsgSrc) + Return False + End If + + Aux0 = New cAux + Aux0.Filepath = AuxPathKV.Value.Path.FullPath + + If Not Aux0.Readfile Then + 'Notificationin ReadFile() + Return False + End If + + AuxRefs.Add(AuxPathKV.Key, Aux0) + + DRIauxcheck(AuxPathKV.Key) = True + + Next + + MsgSrc = "VEH/AuxInit" + + For Each AuxID In DRI.AuxComponents.Keys + If Not DRIauxcheck(AuxID) Then WorkerMsg(tMsgID.Warn, "Auxiliary '" & AuxID & "' not found! Psupply input will be ignored!", MsgSrc) + Next + + Return True + + End Function + + Public Function Paux(ByVal AuxID As String, ByVal t As Integer, ByVal nU As Single) As Single + Dim Psupply As Single + Dim Px As Single + Dim Aux0 As cAux + + Dim MsgSrc As String + + MsgSrc = "VEH/Paux" + + If Cfg.DeclMode Then Return Declaration.AuxPower(AuxID) + + If AuxDef Then + + Aux0 = AuxRefs(AuxID) + + Psupply = DRI.AuxComponents(AuxID)(t) + + If Psupply < 0 Then GoTo lbAuxError + + Px = Aux0.Paux(nU, Psupply) + + If Px < 0 Then GoTo lbAuxError + + Return Px + + Else + + Return 0 + + End If + + +lbAuxError: + MODdata.ModErrors.AuxNegative = AuxID + Return 0 + + + End Function + + Public Function PauxSum(ByVal t As Integer, ByVal nU As Single) As Single + Dim sum As Single + Dim AuxID As String + + Dim MsgSrc As String + + MsgSrc = "VEH/Paux" + + If AuxDef Then + + sum = 0 + + For Each AuxID In AuxRefs.Keys + + sum += Paux(AuxID, t, nU) + + Next + + Return sum + + Else + + Return 0 + + End If + + End Function + +#End Region + + +#Region "Properties" + + Public ReadOnly Property FileList As List(Of String) + Get + Return MyFileList + End Get + End Property + + + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + If sFilePath = "" Then + MyPath = "" + Else + MyPath = IO.Path.GetDirectoryName(sFilePath) & "\" + End If + End Set + End Property + + + Public Property PathVEH(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return stPathVEH.OriginalPath + Else + Return stPathVEH.FullPath + End If + End Get + Set(ByVal value As String) + stPathVEH.Init(MyPath, value) + End Set + End Property + + Public Property PathENG(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return stPathENG.OriginalPath + Else + Return stPathENG.FullPath + End If + End Get + Set(ByVal value As String) + stPathENG.Init(MyPath, value) + End Set + End Property + + Public Property PathGBX(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return stPathGBX.OriginalPath + Else + Return stPathGBX.FullPath + End If + End Get + Set(ByVal value As String) + stPathGBX.Init(MyPath, value) + End Set + End Property + + + Public Property StartStop() As Boolean + Get + Return boStartStop + End Get + Set(ByVal value As Boolean) + boStartStop = value + End Set + End Property + + Public Property StStV() As Single + Get + Return siStStV + End Get + Set(ByVal value As Single) + siStStV = value + End Set + End Property + + Public Property StStT() As Single + Get + Return siStStT + End Get + Set(ByVal value As Single) + siStStT = value + End Set + End Property + + Public Property DesMaxFile(Optional ByVal Original As Boolean = False) As String + Get + If Original Then + Return stDesMaxFile.OriginalPath + Else + Return stDesMaxFile.FullPath + End If + End Get + Set(ByVal value As String) + stDesMaxFile.Init(MyPath, value) + End Set + End Property + +#End Region + + Public Function aDesMax(ByVal v As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If laDesV(0) >= v Then + If laDesV(0) > v Then MODdata.ModErrors.DesMaxExtr = "v= " & v * 3.6 & "[km/h]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While laDesV(i) < v And i < DesMaxDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If laDesV(i) < v Then + MODdata.ModErrors.DesMaxExtr = "v= " & v * 3.6 & "[km/h]" + End If + +lbInt: + 'Interpolation + Return (v - laDesV(i - 1)) * (laDesMax(i) - laDesMax(i - 1)) / (laDesV(i) - laDesV(i - 1)) + laDesMax(i - 1) + + End Function + + Public Function aDesMin(ByVal v As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If laDesV(0) >= v Then + If laDesV(0) > v Then MODdata.ModErrors.DesMaxExtr = "v= " & v * 3.6 & "[km/h]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While laDesV(i) < v And i < DesMaxDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If laDesV(i) < v Then + MODdata.ModErrors.DesMaxExtr = "v= " & v * 3.6 & "[km/h]" + End If + +lbInt: + 'Interpolation + Return (v - laDesV(i - 1)) * (laDesMin(i) - laDesMin(i - 1)) / (laDesV(i) - laDesV(i - 1)) + laDesMin(i - 1) + + End Function + + +End Class + diff --git a/VECTO/Input Files/cVEH.vb b/VECTO/Input Files/cVEH.vb new file mode 100644 index 0000000000000000000000000000000000000000..74cef57d3df0c69f1e8c5afb3b414d16b513cee3 --- /dev/null +++ b/VECTO/Input Files/cVEH.vb @@ -0,0 +1,816 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cVEH + + 'V2 MassMax is now saved in [t] instead of [kg] + Private Const FormatVersion As Short = 5 + Private FileVersion As Short + + Private sFilePath As String + Private MyPath As String + + Public Mass As Single + Public Loading As Single + Private siFr0 As Single + + Public Cd0 As Single + Public Aquers As Single + + Public Cd02 As Single + Public Aquers2 As Single + + Private Cd0Act As Single + Private AquersAct As Single + + Public CdMode As tCdMode + Public CdFile As cSubPath + Private CdX As List(Of Single) + Private CdY As List(Of Single) + Private CdDim As Integer + + Public RtType As tRtType '0=None, 1=Primary, 2=Secondary + Public RtRatio As Single = 0 + Public RtFile As cSubPath + Private RtDim As Integer + Private RtnU As List(Of Single) + Private RtM As List(Of Single) + + Public rdyn As Single + Public Axles As List(Of cAxle) + Public Rim As String + Private m_red0 As Single + + Public VehCat As tVehCat + Public MassExtra As Single + Public MassMax As Single + Public AxleConf As tAxleConf + + Private MyFileList As List(Of String) + + Public SavedInDeclMode As Boolean + + + Public Class cAxle + Public RRC As Single + Public Share As Single + Public TwinTire As Boolean + Public FzISO As Single + Public Wheels As String + Public Inertia As Single + End Class + + + + Public Function CreateFileList() As Boolean + + MyFileList = New List(Of String) + + '.vcdv / .vcdb + If Me.CdMode <> tCdMode.ConstCd0 Then MyFileList.Add(Me.CdFile.FullPath) + + 'Retarder + If Me.RtType <> tRtType.None Then MyFileList.Add(Me.RtFile.FullPath) + + Return True + + End Function + + + + Public Sub New() + MyPath = "" + sFilePath = "" + CdFile = New cSubPath + CdX = New List(Of Single) + CdY = New List(Of Single) + RtFile = New cSubPath + RtnU = New List(Of Single) + RtM = New List(Of Single) + Axles = New List(Of cAxle) + SetDefault() + End Sub + + Private Sub SetDefault() + Mass = 0 + MassExtra = 0 + Loading = 0 + Cd0 = 0 + Aquers = 0 + Cd0Act = Cd0 + AquersAct = Aquers + Cd02 = 0 + Aquers2 = 0 + CdFile.Clear() + CdMode = tCdMode.ConstCd0 + CdX.Clear() + CdY.Clear() + CdDim = -1 + + siFr0 = 0 + rdyn = 0 + Rim = "" + + RtType = tRtType.None + RtRatio = 0 + RtnU.Clear() + RtM.Clear() + RtFile.Clear() + Axles.Clear() + VehCat = tVehCat.Undef + MassMax = 0 + AxleConf = tAxleConf.Undef + + SavedInDeclMode = False + + End Sub + + Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean + Dim Itemp As Single + Dim a0 As cAxle + Dim JSON As New cJSON + Dim dic As Object + + Dim MsgSrc As String + + + MsgSrc = "VEH/ReadFile" + + SetDefault() + + If Not JSON.ReadFile(sFilePath) Then Return False + + Try + + FileVersion = JSON.Content("Header")("FileVersion") + + If FileVersion > 4 Then + SavedInDeclMode = JSON.Content("Body")("SavedInDeclMode") + Else + SavedInDeclMode = Cfg.DeclMode + End If + + + Mass = JSON.Content("Body")("CurbWeight") + MassExtra = JSON.Content("Body")("CurbWeightExtra") + Loading = JSON.Content("Body")("Loading") + MassMax = JSON.Content("Body")("MassMax") + If FileVersion < 2 Then MassMax /= 1000 + + Cd0 = JSON.Content("Body")("Cd") + Aquers = JSON.Content("Body")("CrossSecArea") + + Cd02 = Cd0 + Aquers2 = Aquers + + If FileVersion < 4 Then + If Not JSON.Content("Body")("CdRigid") Is Nothing Then Cd02 = JSON.Content("Body")("CdRigid") + If Not JSON.Content("Body")("CrossSecAreaRigid") Is Nothing Then Aquers2 = JSON.Content("Body")("CrossSecAreaRigid") + Else + If Not JSON.Content("Body")("Cd2") Is Nothing Then Cd02 = JSON.Content("Body")("Cd2") + If Not JSON.Content("Body")("CrossSecArea2") Is Nothing Then Aquers2 = JSON.Content("Body")("CrossSecArea2") + End If + + Cd0Act = Cd0 + AquersAct = Aquers + + If FileVersion < 3 Then + Itemp = JSON.Content("Body")("WheelsInertia") + rdyn = 1000 * JSON.Content("Body")("WheelsDiaEff") / 2 + Rim = "-" + Else + Rim = JSON.Content("Body")("Rim") + rdyn = JSON.Content("Body")("rdyn") + End If + + CdMode = CdModeConv(JSON.Content("Body")("CdCorrMode").ToString) + If Not JSON.Content("Body")("CdCorrFile") Is Nothing Then CdFile.Init(MyPath, JSON.Content("Body")("CdCorrFile")) + + If JSON.Content("Body")("Retarder") Is Nothing Then + RtType = tRtType.None + Else + RtType = RtTypeConv(JSON.Content("Body")("Retarder")("Type").ToString) + If Not JSON.Content("Body")("Retarder")("Ratio") Is Nothing Then RtRatio = JSON.Content("Body")("Retarder")("Ratio") + If Not JSON.Content("Body")("Retarder")("File") Is Nothing Then RtFile.Init(MyPath, JSON.Content("Body")("Retarder")("File")) + End If + + VehCat = ConvVehCat(JSON.Content("Body")("VehCat").ToString) + AxleConf = ConvAxleConf(JSON.Content("Body")("AxleConfig")("Type").ToString) + + For Each dic In JSON.Content("Body")("AxleConfig")("Axles") + + a0 = New cAxle + + If FileVersion < 3 Then + a0.Wheels = "-" + Else + a0.Inertia = CSng(dic("Inertia")) + a0.Wheels = CStr(dic("Wheels")) + End If + + a0.Share = CSng(dic("AxleWeightShare")) + a0.TwinTire = CBool(dic("TwinTyres")) + a0.RRC = CSng(dic("RRCISO")) + a0.FzISO = CSng(dic("FzISO")) + + Axles.Add(a0) + + Next + + If FileVersion < 3 Then + For Each a0 In Axles + If a0.TwinTire Then + a0.Inertia = Itemp / (4 * Axles.Count) + Else + a0.Inertia = Itemp / (2 * Axles.Count) + End If + Next + End If + + + + Catch ex As Exception + If ShowMsg Then WorkerMsg(tMsgID.Err, "Failed to read Vehicle file! " & ex.Message, MsgSrc) + Return False + End Try + + Return True + + + + End Function + + Public Function SaveFile() As Boolean + Dim dic As Dictionary(Of String, Object) + Dim dic0 As Dictionary(Of String, Object) + Dim ls As List(Of Dictionary(Of String, Object)) + Dim a0 As cAxle + Dim JSON As New cJSON + + + 'Header + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + JSON.Content.Add("Header", dic) + + 'Body + dic = New Dictionary(Of String, Object) + + dic.Add("SavedInDeclMode", Cfg.DeclMode) + SavedInDeclMode = Cfg.DeclMode + + dic.Add("VehCat", ConvVehCat(VehCat, False)) + + dic.Add("CurbWeight", Mass) + dic.Add("CurbWeightExtra", MassExtra) + dic.Add("Loading", Loading) + dic.Add("MassMax", MassMax) + + dic.Add("Cd", Cd0) + dic.Add("CrossSecArea", Aquers) + + If Cd02 > 0 And Aquers2 > 0 Then + dic.Add("Cd2", Cd02) + dic.Add("CrossSecArea2", Aquers2) + End If + + dic.Add("rdyn", rdyn) + dic.Add("Rim", Rim) + + + dic.Add("CdCorrMode", CdModeConv(CdMode)) + dic.Add("CdCorrFile", CdFile.PathOrDummy) + + dic0 = New Dictionary(Of String, Object) + dic0.Add("Type", RtTypeConv(RtType)) + dic0.Add("Ratio", RtRatio) + dic0.Add("File", RtFile.PathOrDummy) + dic.Add("Retarder", dic0) + + ls = New List(Of Dictionary(Of String, Object)) + For Each a0 In Axles + dic0 = New Dictionary(Of String, Object) + + dic0.Add("Inertia", a0.Inertia) + dic0.Add("Wheels", a0.Wheels) + dic0.Add("AxleWeightShare", a0.Share) + dic0.Add("TwinTyres", a0.TwinTire) + dic0.Add("RRCISO", a0.RRC) + dic0.Add("FzISO", a0.FzISO) + ls.Add(dic0) + Next + + dic0 = New Dictionary(Of String, Object) + dic0.Add("Type", ConvAxleConf(AxleConf)) + dic0.Add("Axles", ls) + dic.Add("AxleConfig", dic0) + + JSON.Content.Add("Body", dic) + + Return JSON.WriteFile(sFilePath) + + + End Function + + + Public Function DeclInit() As Boolean + Dim al As List(Of Single) + Dim i As Integer + Dim a As Single + Dim a0 As cAxle + Dim MissionID As tMission + Dim MsgSrc As String + + MsgSrc = "VEH/DeclInit" + + MissionID = Declaration.CurrentMission.MissionID + + MassExtra = Declaration.SegRef.GetBodyTrWeight(MissionID) + + + al = Declaration.SegRef.AxleShares(MissionID) + + If al.Count > Axles.Count Then + WorkerMsg(tMsgID.Err, "Invalid number of axles! Defined: " & Axles.Count & ", required: " & al.Count, MsgSrc) + Return False + End If + + i = -1 + For Each a In al + i += 1 + Axles(i).Share = a / 100 + Next + + 'Remove non-Truck axles + Do While Axles.Count > al.Count + Axles.RemoveAt(Axles.Count - 1) + Loop + + + '(Semi-) Trailer + If Not Declaration.SegRef.TrailerOnlyInLongHaul OrElse MissionID = tMission.LongHaul Then + al = Declaration.SegRef.AxleSharesTr(MissionID) + For Each a In al + + a0 = New cAxle + + a0.Inertia = 0 'Defined later + a0.Wheels = "385/65 R 22.5" + + a0.Share = a / 100 + a0.TwinTire = False + a0.RRC = cDeclaration.RRCTr + a0.FzISO = cDeclaration.FzISOTr + + Axles.Add(a0) + + Next + End If + + 'Wheels Inertias + For Each a0 In Axles + a0.Inertia = Declaration.WheelsInertia(a0.Wheels) + + If a0.Inertia < 0 Then + WorkerMsg(tMsgID.Err, "Selected wheels (" & a0.Wheels & ") are not supported!", MsgSrc) + Return False + End If + + Next + + + + CdMode = tCdMode.CdOfV + + CdFile.Init(MyPath, Declaration.SegRef.VCDVfile(MissionID)) + + If Declaration.SegRef.TrailerOnlyInLongHaul Then + + If MissionID = tMission.LongHaul Then + Cd0Act = Cd0 + AquersAct = Aquers + Else + Cd0Act = Cd02 + AquersAct = Aquers2 + End If + + Else + + Cd0Act = Cd0 + AquersAct = Aquers + + End If + + If Axles.Count < 2 Then + rdyn = -1 + Else + rdyn = Declaration.rdyn(Axles(1).Wheels, Rim) + End If + + If rdyn < 0 Then + WorkerMsg(tMsgID.Err, "Failed to calculate dynamic tire radius! Check wheels/rims", MsgSrc) + Return False + End If + + Return True + + End Function + + Public Function DeclInitLoad(ByVal LoadingID As tLoading) As Boolean + Dim lmax As Single + Dim MissionID As tMission + Dim MsgSrc As String + + MsgSrc = "VEH/DeclInit" + + MissionID = Declaration.CurrentMission.MissionID + + + lmax = MassMax * 1000 - Mass - MassExtra + + Select Case LoadingID + Case tLoading.FullLoaded + Loading = lmax + + Case tLoading.RefLoaded + Loading = Declaration.SegRef.GetLoading(MissionID, MassMax) + If Loading < 0 Then + WorkerMsg(tMsgID.Err, "Invalid loading in segement table!", MsgSrc) + Return False + End If + + If Loading > lmax Then + WorkerMsg(tMsgID.Warn, "Reference loading > Max. loading! Using max. loading.", MsgSrc) + Loading = lmax + End If + + Case tLoading.EmptyLoaded + Loading = 0 + + Case Else ' tLoading.EmptyLoaded + WorkerMsg(tMsgID.Err, "tLoading.UserDefLoaded not allowed!", MsgSrc) + Return False + + End Select + + Return True + + End Function + + + Public Function VehmodeInit() As Boolean + + Dim MsgSrc As String + Dim a0 As cAxle + Dim ShareSum As Double + Dim RRC As Double + Dim nrwheels As Single + + MsgSrc = "VEH/Init" + + 'Cd-Init + If Not CdInit() Then Return False + + 'Transmission Loss Maps + If Not GBX.TrLossMapInit Then + WorkerMsg(tMsgID.Err, "Failed to initialize Transmission Loss Maps!", MsgSrc) + Return False + End If + + 'Retarder + If Not RtInit() Then Return False + + 'Fr0 + If Axles.Count < 2 Then + WorkerMsg(tMsgID.Err, "At least 2 axle configurations are required!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + 'Check if sum=100% + ShareSum = 0 + For Each a0 In Axles + ShareSum += a0.Share + Next + + If Math.Abs(ShareSum - 1) > 0.0001 Then + WorkerMsg(tMsgID.Err, "Sum of relative axle shares is not 100%!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + If rdyn <= 0 Then + WorkerMsg(tMsgID.Err, "rdyn is invalid!", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + RRC = 0 + m_red0 = 0 + For Each a0 In Axles + + If a0.RRC < -0.000001 Then + WorkerMsg(tMsgID.Err, "Invalid RRC value! (" & a0.RRC & ")", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + If a0.FzISO < 0.00001 Then + WorkerMsg(tMsgID.Err, "Invalid FzISO value! (" & a0.FzISO & ")", MsgSrc, "<GUI>" & sFilePath) + Return False + End If + + If a0.TwinTire Then + nrwheels = 4 + Else + nrwheels = 2 + End If + + RRC += a0.Share * (a0.RRC * ((Loading + Mass + MassExtra) * a0.Share * 9.81 / (a0.FzISO * nrwheels)) ^ (0.9 - 1)) 'Beta=0.9 + + m_red0 += nrwheels * a0.Inertia / ((rdyn / 1000) ^ 2) + + Next + + siFr0 = RRC + + Return True + + End Function + + + + + + +#Region "Cd Funktionen" + + Private Function CdInit() As Boolean + Dim file As cFile_V3 + Dim MsgSrc As String + Dim line As String() + + MsgSrc = "VEH/CdInit" + + 'Warn If Vair specified in DRI but CdType != CdOfBeta + If DRI.VairVorg Xor CdMode = tCdMode.CdOfBeta Then + + If DRI.VairVorg Then + WorkerMsg(tMsgID.Warn, "Vair input in driving cycle will be irgnored! (Side wind correction disabled in .veh file)", MsgSrc) + Else + WorkerMsg(tMsgID.Err, "No Vair input in driving cycle defined! Vres and Beta is required!", MsgSrc) + Return False + End If + + End If + + 'If Cd-value is constant then do nothing + If CdMode = tCdMode.ConstCd0 Then Return True + + 'Read Inputfile + file = New cFile_V3 + + If Not file.OpenRead(CdFile.FullPath) Then + WorkerMsg(tMsgID.Err, "Failed to read Cd input file! (" & CdFile.FullPath & ")", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + CdDim = -1 + Do While Not file.EndOfFile + + CdDim += 1 + line = file.ReadLine + + Try + CdX.Add(CSng(line(0))) + CdY.Add(CSng(line(1))) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & CdDim + 1 & " (" & CdFile.FullPath & ")", MsgSrc, CdFile.FullPath) + file.Close() + Return False + End Try + + Loop + + file.Close() + + If CdDim < 1 Then + WorkerMsg(tMsgID.Err, "Cd input file invalid! Two or more lines required! (" & CdFile.FullPath & ")", MsgSrc, CdFile.FullPath) + Return False + End If + + Return True + + End Function + + Public Function Cd(ByVal x As Single) As Single + Return CdIntpol(x) * Cd0Act + End Function + + Public Function Cd() As Single + Return Cd0Act + End Function + + Public Function CrossSecArea() As Single + Return AquersAct + End Function + + Private Function CdIntpol(ByVal x As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If CdX(0) >= x Then + If CdX(0) > x Then + If CdMode = tCdMode.CdOfBeta Then + MODdata.ModErrors.CdExtrapol = "β= " & x + Else + MODdata.ModErrors.CdExtrapol = "v= " & x + End If + End If + i = 1 + GoTo lbInt + End If + + i = 0 + Do While CdX(i) < x And i < CdDim + i += 1 + Loop + + 'Extrapolation for x > x(imax) + If CdX(i) < x Then + If CdMode = tCdMode.CdOfBeta Then + MODdata.ModErrors.CdExtrapol = "β= " & x + Else + MODdata.ModErrors.CdExtrapol = "v= " & x + End If + End If + +lbInt: + 'Interpolation + Return (x - CdX(i - 1)) * (CdY(i) - CdY(i - 1)) / (CdX(i) - CdX(i - 1)) + CdY(i - 1) + + End Function + +#End Region + +#Region "Retarder" + + Private Function RtInit() As Boolean + Dim file As cFile_V3 + Dim MsgSrc As String + Dim line As String() + + MsgSrc = "VEH/RtInit" + + If RtType = tRtType.None Then Return True + + 'Read Inputfile + file = New cFile_V3 + If Not file.OpenRead(RtFile.FullPath) Then + WorkerMsg(tMsgID.Err, "Failed to read Retarder input file! (" & RtFile.FullPath & ")", MsgSrc) + Return False + End If + + 'Skip Header + file.ReadLine() + + RtDim = -1 + Do While Not file.EndOfFile + + RtDim += 1 + line = file.ReadLine + + Try + RtnU.Add(CSng(line(0))) + RtM.Add(CSng(line(1))) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Error during file read! Line number: " & RtDim + 1 & " (" & RtFile.FullPath & ")", MsgSrc, RtFile.FullPath) + file.Close() + Return False + End Try + + Loop + + file.Close() + + If RtDim < 1 Then + WorkerMsg(tMsgID.Err, "Retarder input file invalid! Two or more lines required! (" & RtFile.FullPath & ")", MsgSrc, RtFile.FullPath) + Return False + End If + + Return True + + End Function + + + Public Function RtPeLoss(ByVal v As Single, ByVal Gear As Integer) As Single + Dim M As Single + Dim nU As Single + + Select Case RtType + + Case tRtType.Primary + nU = (60 * v) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0) * GBX.Igetr(Gear) * RtRatio + + Case tRtType.Secondary + nU = (60 * v) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0) * RtRatio + + Case Else 'tRtType.None + Return 0 + + End Select + + M = RtIntpol(nU) + + Return M * nU * 2 * Math.PI / 60 / 1000 + + End Function + + Private Function RtIntpol(ByVal nU As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If RtnU(0) >= nU Then + If RtnU(0) > nU Then MODdata.ModErrors.RtExtrapol = "n= " & nU & " [1/min]" + i = 1 + GoTo lbInt + End If + + i = 0 + Do While RtnU(i) < nU And i < RtDim + i += 1 + Loop + + 'Extrapolation for x> x(imax) + If RtnU(i) < nU Then MODdata.ModErrors.RtExtrapol = "n= " & nU & " [1/min]" + +lbInt: + 'Interpolation + Return (nU - RtnU(i - 1)) * (RtM(i) - RtM(i - 1)) / (RtnU(i) - RtnU(i - 1)) + RtM(i - 1) + + End Function + +#End Region + +#Region "Properties" + + Public ReadOnly Property FileList As List(Of String) + Get + Return MyFileList + End Get + End Property + + Public ReadOnly Property m_red As Single + Get + Return m_red0 + End Get + End Property + + Public Property Fr0 As Single + Get + Return siFr0 + End Get + Set(ByVal value As Single) + siFr0 = value + End Set + End Property + + Public Property FilePath() As String + Get + Return sFilePath + End Get + Set(ByVal value As String) + sFilePath = value + If sFilePath = "" Then + MyPath = "" + Else + MyPath = IO.Path.GetDirectoryName(sFilePath) & "\" + End If + End Set + End Property + + + + + + + + + + +#End Region + + +End Class + diff --git a/VECTO/MODcalc/cMOD.vb b/VECTO/MODcalc/cMOD.vb new file mode 100644 index 0000000000000000000000000000000000000000..a9ae9034be9f943ab8696301236db4035efc1079 --- /dev/null +++ b/VECTO/MODcalc/cMOD.vb @@ -0,0 +1,843 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cMOD + + Public Pe As List(Of Single) + Public nU As List(Of Single) + Public nUvorg As List(Of Single) + Public tDim As Integer + Public tDimOgl As Integer + Public Px As cPower + Public Vh As cVh + Public CylceKin As cCycleKin + Public ModOutpName As String + Public ModErrors As cModErrors + + 'Power + Public Psum As List(Of Single) + Public Proll As List(Of Single) + Public Pstg As List(Of Single) + Public Pair As List(Of Single) + Public Pa As List(Of Single) + Public Pbrake As List(Of Single) + Public PauxSum As List(Of Single) + Public PlossGB As List(Of Single) + Public PlossDiff As List(Of Single) + Public PlossRt As List(Of Single) + Public PaEng As List(Of Single) + Public PaGB As List(Of Single) + Public Paux As Dictionary(Of String, List(Of Single)) + Public Pclutch As List(Of Single) + Public Grad As List(Of Single) + + Public EngState As List(Of tEngState) + + 'Vehicle + Public Gear As List(Of Single) + Public VehState As List(Of tVehState) + + Public TCnu As List(Of Single) + Public TCmu As List(Of Single) + Public TCMout As List(Of Single) + Public TCnOut As List(Of Single) + + 'FC + Public FCerror As Boolean + Public lFC As List(Of Single) + Public lFCAUXc As List(Of Single) + Public lFCWHTCc As List(Of Single) + Public FCavg As Single + Public FCavgAUXc As Single + Public FCavgWHTCc As Single + Public FCavgFinal As Single + + Public FCAUXcSet As Boolean + + Private bInit As Boolean + + Public Sub New() + bInit = False + End Sub + + Public Sub Init() + Pe = New List(Of Single) + nU = New List(Of Single) + Px = New cPower + Vh = New cVh + CylceKin = New cCycleKin + + Proll = New List(Of Single) + Psum = New List(Of Single) + Pstg = New List(Of Single) + Pbrake = New List(Of Single) + Pair = New List(Of Single) + Pa = New List(Of Single) + PauxSum = New List(Of Single) + PlossGB = New List(Of Single) + PlossDiff = New List(Of Single) + PlossRt = New List(Of Single) + PaEng = New List(Of Single) + PaGB = New List(Of Single) + Paux = New Dictionary(Of String, List(Of Single)) + Pclutch = New List(Of Single) + Grad = New List(Of Single) + + EngState = New List(Of tEngState) + + Gear = New List(Of Single) + VehState = New List(Of tVehState) + + TCnu = New List(Of Single) + TCmu = New List(Of Single) + TCMout = New List(Of Single) + TCnOut = New List(Of Single) + + lFC = New List(Of Single) + lFCAUXc = New List(Of Single) + lFCWHTCc = New List(Of Single) + FCAUXcSet = False + + FCerror = False + + + Vh.Init() + ModErrors = New cModErrors + + + bInit = True + End Sub + + Public Sub CleanUp() + If bInit Then + lFC = Nothing + lFCAUXc = Nothing + lFCWHTCc = Nothing + + Vh.CleanUp() + Px = Nothing + Vh = Nothing + Pe = Nothing + nU = Nothing + + Proll = Nothing + Psum = Nothing + Pstg = Nothing + Pair = Nothing + Pa = Nothing + Pbrake = Nothing + PauxSum = Nothing + PlossGB = Nothing + PlossDiff = Nothing + PlossRt = Nothing + PaEng = Nothing + PaGB = Nothing + Paux = Nothing + Pclutch = Nothing + Grad = Nothing + + EngState = Nothing + + Gear = Nothing + VehState = Nothing + + TCnu = Nothing + TCmu = Nothing + TCMout = Nothing + TCnOut = Nothing + + CylceKin = Nothing + ModErrors = Nothing + bInit = False + End If + End Sub + + Public Sub Duplicate(ByVal t As Integer) + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + + If DRI.Nvorg Then + nUvorg.Insert(t, nUvorg(t)) + End If + + If DRI.AuxDef Then + For Each AuxKV In DRI.AuxComponents + AuxKV.Value.Insert(t, AuxKV.Value(t)) + Next + End If + + End Sub + + Public Sub Cut(ByVal t As Integer) + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + + If DRI.Nvorg Then + nUvorg.RemoveAt(t) + End If + + If DRI.AuxDef Then + For Each AuxKV In DRI.AuxComponents + AuxKV.Value.RemoveAt(t) + Next + End If + + End Sub + + + + Public Sub CycleInit() + + If VEC.EngOnly Then + EngCycleInit() + Else + VehCycleInit() + End If + + tDimOgl = tDim + + End Sub + + Private Sub VehCycleInit() + Dim s As Integer + Dim L As List(Of Double) + Dim AuxKV As KeyValuePair(Of String, List(Of Single)) + Dim st As String + + 'Define Cycle-length (shorter by 1sec than original because of Interim-seconds) + tDim = DRI.tDim - 1 + + 'Here the actual cycle is read: + Vh.VehCylceInit() + + 'Revolutions-setting + If DRI.Nvorg Then + + MODdata.nUvorg = New List(Of Single) + + L = DRI.Values(tDriComp.nU) + + 'Revolutions + For s = 0 To tDim + MODdata.nUvorg.Add(((L(s + 1) + L(s)) / 2)) + Next + + End If + + 'Specify average Aux and Aux-lists, when Aux present in DRI and VEH + If Cfg.DeclMode Then + + For Each st In VEC.AuxPaths.Keys + MODdata.Paux.Add(st, New List(Of Single)) + Next + + Else + + If DRI.AuxDef Then + For Each AuxKV In DRI.AuxComponents + + For s = 0 To tDim + AuxKV.Value(s) = (AuxKV.Value(s + 1) + AuxKV.Value(s)) / 2 + Next + + If VEC.AuxPaths.ContainsKey(AuxKV.Key) Then MODdata.Paux.Add(AuxKV.Key, New List(Of Single)) + + Next + End If + + End If + + + + + End Sub + + Private Sub EngCycleInit() + Dim s As Integer + Dim L As List(Of Double) + + 'Zykluslänge definieren: Gleiche Länge wie Zyklus (nicht reduziert weil keine "Zwischensekunden") |@@| Define Cycle-length: Same length as Cycle (not reduced because no "interim seconds") + tDim = DRI.tDim + + Vh.EngCylceInit() + + 'Revolutions-setting + If DRI.Nvorg Then + + MODdata.nUvorg = New List(Of Single) + + L = DRI.Values(tDriComp.nU) + + 'Revolutions + For s = 0 To MODdata.tDim + MODdata.nUvorg.Add(L(s)) + Next + + End If + + End Sub + + + + Public Sub FCcalc(ByVal WHTCcorrection As Boolean) + Dim v As Single + Dim i As Integer + Dim Result As Boolean + Dim x As Single + Dim sum As Double + Dim LostEnergy As Double + Dim EngOnTime As Integer + Dim AddEngLoad As Single + Dim info As cRegression.RegressionProcessInfo + Dim reg As cRegression + Dim rx As List(Of Double) + Dim ry As List(Of Double) + Dim rR2 As Single + Dim rA As Double + Dim rB As Double + Dim rSE As Double + Dim PeAdd As Double + + Dim MsgSrc As String + + MsgSrc = "MAP/FC_Intp" + + FCerror = False + Result = True + LostEnergy = 0 + EngOnTime = 0 + rx = New List(Of Double) + ry = New List(Of Double) + + For i = 0 To MODdata.tDim + + Select Case MODdata.EngState(i) + + Case tEngState.Stopped + + lFC.Add(0) + LostEnergy += MODdata.PauxSum(i) / 3600 + + Case Else '<= Idle / Drag / FullLoad-Unterscheidung...? + + + 'Delaunay + v = MAP.fFCdelaunay_Intp(MODdata.nU(i), nPeToM(MODdata.nU(i), MODdata.Pe(i))) + + If v < 0 And v > -999 Then v = 0 + + If Result Then + If v < -999 Then Result = False + End If + lFC.Add(v) + + EngOnTime += 1 + rx.Add(MODdata.Pe(i)) + ry.Add(v) + + End Select + + Next + + 'Calc average FC + sum = 0 + For Each x In lFC + sum += x + Next + FCavg = CSng(sum / lFC.Count) + FCavgFinal = FCavg + + 'Start/Stop-Aux - Correction + If Result AndAlso LostEnergy > 0 Then + + WorkerMsg(tMsgID.Normal, "Correcting FC due to wrong aux energy balance during engine stop times", MsgSrc) + WorkerMsg(tMsgID.Normal, " > Error in aux energy balance: " & LostEnergy.ToString("0.000") & " [kWh]", MsgSrc) + + If EngOnTime < 1 Then + WorkerMsg(tMsgID.Err, " > ERROR: Engine-On Time = 0!", MsgSrc) + FCerror = True + Exit Sub + End If + + 'Linear regression of FC=f(Pe) + reg = New cRegression + + info = reg.Regress(rx.ToArray, ry.ToArray) + rR2 = info.PearsonsR ^ 2 + rA = info.a + rB = info.b + rSE = info.StandardError + + If rB <= 0 Then + WorkerMsg(tMsgID.Err, " > ERROR in linear regression ( b=" & rB & ")!", MsgSrc) + FCerror = True + Exit Sub + End If + + 'Additional engine load due to lost Aux energy: [kW] = [kWh]/[h] + AddEngLoad = LostEnergy / (EngOnTime / 3600) + + WorkerMsg(tMsgID.Normal, " > Additional engine load: " & AddEngLoad.ToString("0.000") & " [kW]", MsgSrc) + + For i = 0 To MODdata.tDim + lFCAUXc.Add(lFC(i)) + If MODdata.EngState(i) <> tEngState.Stopped Then + PeAdd = AddEngLoad + MODdata.Pbrake(i) + If PeAdd > 0 Then + lFCAUXc(i) += rB * PeAdd + End If + End If + Next + + 'average + sum = 0 + For Each x In lFCAUXc + sum += x + Next + FCavgAUXc = CSng(sum / lFC.Count) + + FCAUXcSet = True + + FCavgFinal = FCavgAUXc + + + End If + + 'WHTC Correction + If Cfg.DeclMode Then + + If FCAUXcSet Then + For i = 0 To MODdata.tDim + lFCWHTCc.Add(lFCAUXc(i) * Declaration.WHTCcorrFactor) + Next + Else + For i = 0 To MODdata.tDim + lFCWHTCc.Add(lFC(i) * Declaration.WHTCcorrFactor) + Next + End If + + sum = 0 + For Each x In lFCWHTCc + sum += x + Next + FCavgWHTCc = CSng(sum / lFC.Count) + + FCavgFinal = FCavgWHTCc + + End If + + If Not Result Then FCerror = True + + End Sub + + + + Public Function Output() As Boolean + + Dim f As cFile_V3 + Dim s As System.Text.StringBuilder + Dim t As Integer + Dim t1 As Integer + + Dim Sepp As String + Dim path As String + Dim dist As Double + Dim MsgSrc As String + Dim tdelta As Single + + Dim StrKey As String + + Dim AuxList As New List(Of String) + + Dim Gear As Integer + + MsgSrc = "MOD/Output" + + '*********** Initialization / Open File ************** + If ModOutpName = "" Then + WorkerMsg(tMsgID.Err, "Invalid output path!", MsgSrc) + Return False + End If + + f = New cFile_V3 + + path = ModOutpName & ".vmod" + + If Not f.OpenWrite(path, ",", False) Then + WorkerMsg(tMsgID.Err, "Can't write to " & path, MsgSrc) + Return False + End If + + s = New System.Text.StringBuilder + + '*********** Settings ************** + Sepp = "," + t1 = MODdata.tDim + If VEC.EngOnly Then + tdelta = 0 + Else + tdelta = 0.5 + End If + + + '********** Aux-List ************ + For Each StrKey In VEC.AuxRefs.Keys 'Wenn Engine Only dann wird das garnicht verwendet + AuxList.Add(StrKey) + Next + + + 'f.WriteLine("VECTO modal results") + 'f.WriteLine("VECTO " & VECTOvers) + 'f.WriteLine(Now.ToString) + 'f.WriteLine("Input File: " & JobFile) + + + '*********************************************************************************************** + '*********************************************************************************************** + '*********************************************************************************************** + '*** Header & Units **************************************************************************** + s.Length = 0 + + s.Append("time [s]") + + If Not VEC.EngOnly Then + + s.Append(",dist [m],v_act [km/h],v_targ [km/h],acc [m/s^2],grad [%]") + dist = 0 + + End If + + s.Append(",n [1/min],Tq_eng [Nm],Tq_clutch [Nm],Tq_full [Nm],Tq_drag [Nm],Pe_eng [kW],Pe_full [kW],Pe_drag [kW],Pe_clutch [kW],Pa Eng [kW],Paux [kW]") + + If Not VEC.EngOnly Then + + s.Append(",Gear [-],Ploss GB [kW],Ploss Diff [kW],Ploss Retarder [kW],Pa GB [kW],Pa Veh [kW],Proll [kW],Pair [kW],Pgrad [kW],Pwheel [kW],Pbrake [kW]") + + If GBX.TCon Then + s.Append(",TCν [-],TCμ [-],TC_T_Out [Nm],TC_n_Out [1/min]") + End If + + 'Auxiliaries + For Each StrKey In AuxList + s.Append(",Paux_" & StrKey & " [kW]") + Next + + End If + + + 'FC + s.Append(Sepp & "FC [g/h]") + + s.Append(Sepp & "FC-AUXc [g/h]") + + s.Append(Sepp & "FC-WHTCc [g/h]") + + + 'Write to File + ' Header + f.WriteLine(s.ToString) + + + '*********************************************************************************************** + '*********************************************************************************************** + '*********************************************************************************************** + '*** Values ************************************************************************************* + + With MODdata + + For t = 0 To t1 + + 'Predefine Gear for FLD assignment + If VEC.EngOnly Then + Gear = 0 + Else + Gear = .Gear(t) + End If + + + s.Length = 0 + + 'Time + s.Append(t + DRI.t0 + tdelta) + + If Not VEC.EngOnly Then + + 'distance + dist += .Vh.V(t) + s.Append(Sepp & dist) + + 'Actual-speed. + s.Append(Sepp & .Vh.V(t) * 3.6) + + 'Target-speed + s.Append(Sepp & .Vh.Vsoll(t) * 3.6) + + 'Acc. + s.Append(Sepp & .Vh.a(t)) + + 'Slope + s.Append(Sepp & .Grad(t)) + + End If + + 'Revolutions + s.Append(Sepp & .nU(t)) + + If Math.Abs(2 * Math.PI * .nU(t) / 60) < 0.00001 Then + s.Append(Sepp & "0" & Sepp & "0" & Sepp & "0" & Sepp & "0") + Else + + 'Torque + s.Append(Sepp & nPeToM(.nU(t), .Pe(t))) + + 'Torque at clutch + s.Append(Sepp & nPeToM(.nU(t), .Pclutch(t))) + + 'Full-load and Drag torque + If .EngState(t) = tEngState.Stopped Then + s.Append(Sepp & "0" & Sepp & "0") + Else + If t = 0 Then + s.Append(Sepp & nPeToM(.nU(t), FLD(Gear).Pfull(.nU(t))) & Sepp & nPeToM(.nU(t), FLD(Gear).Pdrag(.nU(t)))) + Else + s.Append(Sepp & nPeToM(.nU(t), FLD(Gear).Pfull(.nU(t), .Pe(t - 1))) & Sepp & nPeToM(.nU(t), FLD(Gear).Pdrag(.nU(t)))) + End If + End If + + End If + + 'Power + s.Append(Sepp & .Pe(t)) + + 'Revolutions normalized + 's.Append(Sepp & .nn(t)) + + 'Power normalized + 's.Append(Sepp & .Pe(t)) + + 'Full-load and Drag + If .EngState(t) = tEngState.Stopped Then + s.Append(Sepp & "-" & Sepp & "-") + Else + If t = 0 Then + s.Append(Sepp & FLD(Gear).Pfull(.nU(t)) & Sepp & FLD(Gear).Pdrag(.nU(t))) + Else + s.Append(Sepp & FLD(Gear).Pfull(.nU(t), .Pe(t - 1)) & Sepp & FLD(Gear).Pdrag(.nU(t))) + End If + End If + + 'Power at Clutch + s.Append(Sepp & .Pclutch(t)) + + 'PaEng + s.Append(Sepp & .PaEng(t)) + + 'Aux.. + s.Append(Sepp & .PauxSum(t)) + + + + If Not VEC.EngOnly Then + + 'Gear + s.Append(Sepp & .Gear(t)) + + 'Transmission-losses + s.Append(Sepp & .PlossGB(t)) + + 'Diff-losses + s.Append(Sepp & .PlossDiff(t)) + + 'Retarder-losses + s.Append(Sepp & .PlossRt(t)) + + 'PaGB + s.Append(Sepp & .PaGB(t)) + + 'Pa Veh + s.Append(Sepp & .Pa(t)) + + 'Roll.. + s.Append(Sepp & .Proll(t)) + + 'Drag + s.Append(Sepp & .Pair(t)) + + 'Slope .. + s.Append(Sepp & .Pstg(t)) + + 'Wheel-power + s.Append(Sepp & .Psum(t)) + + 'Brake + s.Append(Sepp & .Pbrake(t)) + + 'Torque Converter output + If GBX.TCon Then s.Append(Sepp & .TCnu(t) & Sepp & .TCmu(t) & Sepp & .TCMout(t) & Sepp & .TCnOut(t)) + + 'Auxiliaries + For Each StrKey In AuxList + s.Append(Sepp & .Paux(StrKey)(t)) + Next + + End If + + 'FC + If .lFC(t) > -0.0001 Then + s.Append(Sepp & .lFC(t)) + Else + s.Append(Sepp & "ERROR") + End If + + If FCAUXcSet Then + If .lFCAUXc(t) > -0.0001 Then + s.Append(Sepp & .lFCAUXc(t)) + Else + s.Append(Sepp & "ERROR") + End If + Else + s.Append(Sepp & "-") + End If + + + If Cfg.DeclMode Then + If .lFCWHTCc(t) > -0.0001 Then + s.Append(Sepp & .lFCWHTCc(t)) + Else + s.Append(Sepp & "ERROR") + End If + Else + s.Append(Sepp & "-") + End If + + 'Write to File + f.WriteLine(s.ToString) + + Next + + End With + + f.Close() + + 'Add file to signing list + Lic.FileSigning.AddFile(path) + + Return True + + End Function + + 'Errors/Warnings die sekündlich auftreten können |@@| Errors/Warnings occuring every second + Public Class cModErrors + Public TrLossMapExtr As String + Public AuxMapExtr As String + Public AuxNegative As String + Public FLDextrapol As String + Public CdExtrapol As String + Public RtExtrapol As String + Public DesMaxExtr As String + Public TCextrapol As String + + Public Sub New() + ResetAll() + End Sub + + + 'Reset-Hierarchie: + ' ResetAll + ' DesMaxExtr + ' -GeschRedReset(Speed-Reduce-Reset) + ' CdExtrapol + ' -PxReset + ' TrLossMapExtr + ' AuxMapExtr + ' AuxNegative + ' FLDextrapol + + 'Full reset (at the beginning of each second step) + Public Sub ResetAll() + DesMaxExtr = "" + GeschRedReset() + End Sub + + 'Reset Errors related to Speed Reduction (within iteration) + Public Sub GeschRedReset() + CdExtrapol = "" + RtExtrapol = "" + TCextrapol = "" + PxReset() + End Sub + + 'Reset von Errors die mit der Leistungsberechnung zu tun haben (nach Schaltmodell durchzuführen) |@@| Reset errors related to Power-calculation (towards performing the Gear-shifting model) + Public Sub PxReset() + TrLossMapExtr = "" + AuxMapExtr = "" + AuxNegative = "" + FLDextrapol = "" + End Sub + + 'Emit Errors + Public Function MsgOutputAbort(ByVal Second As String, ByVal MsgSrc As String) As Boolean + Dim Abort As Boolean + + Abort = False + + If TrLossMapExtr <> "" Then + WorkerMsg(tMsgID.Err, "Invalid extrapolation in Transmission Loss Map (" & TrLossMapExtr & ")!", MsgSrc & "/t= " & Second) + End If + + If AuxMapExtr <> "" Then + WorkerMsg(tMsgID.Err, "Invalid extrapolation in Auxiliary Map (" & AuxMapExtr & ")!", MsgSrc & "/t= " & Second) + End If + + If AuxNegative <> "" Then + WorkerMsg(tMsgID.Err, "Aux power < 0 (" & AuxNegative & ") Check cycle and aux efficiency map!", MsgSrc & "/t= " & Second) + Abort = True + End If + + If FLDextrapol <> "" Then + WorkerMsg(tMsgID.Warn, "Extrapolation of Full load / drag curve (" & FLDextrapol & ")!", MsgSrc & "/t= " & Second) + End If + + If CdExtrapol <> "" Then + WorkerMsg(tMsgID.Warn, "Extrapolation in Cd input file (" & CdExtrapol & ")!", MsgSrc & "/t= " & Second) + End If + + If DesMaxExtr <> "" Then + WorkerMsg(tMsgID.Warn, "Extrapolation in .vacc input file (" & DesMaxExtr & ")!", MsgSrc & "/t= " & Second) + End If + + If RtExtrapol <> "" Then + WorkerMsg(tMsgID.Warn, "Extrapolation in Retarder input file (" & RtExtrapol & ")!", MsgSrc & "/t= " & Second) + End If + + If TCextrapol <> "" Then + WorkerMsg(tMsgID.Warn, "Extrapolation in Torque Converter file (" & TCextrapol & ")!", MsgSrc & "/t= " & Second) + End If + + Return Abort + + End Function + + End Class + + + + + + + + + + +End Class + + + + diff --git a/VECTO/MODcalc/cPower.vb b/VECTO/MODcalc/cPower.vb new file mode 100644 index 0000000000000000000000000000000000000000..aa9e542a720f18bfa1583efeb0655d770f4ea7c2 --- /dev/null +++ b/VECTO/MODcalc/cPower.vb @@ -0,0 +1,2361 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cPower + + Private ClutchNorm As Single 'Normalized clutch speed + Private ClutchEta As Single 'clutch efficiency + + 'Settings + Private GearInput As Boolean + Private RpmInput As Boolean + + + 'Per-second Data + Private Clutch As tEngClutch + Private VehState0 As tVehState + Private EngState0 As tEngState + Private Pplus As Boolean + Private Pminus As Boolean + Private GVmax As Single + Private Pwheel As Single + Private Vact As Single + Private aact As Single + + 'Interruption of traction + Private TracIntrI As Integer + Private TracIntrIx As Integer + Private TracIntrOn As Boolean + Private TracIntrTurnOff As Boolean + Private TracIntrGear As Integer + + Private LastGearChange As Integer + Private LastClutch As tEngClutch + + Public Positions As New List(Of Short) + + Private EngSideInertia As Single + + Public Function PreRun() As Boolean + Dim i As Integer + Dim i0 As Integer + Dim Vh As cVh + Dim P As Single + Dim Pmin As Single + Dim PlossGB As Single + Dim PlossDiff As Single + Dim PlossRt As Single + Dim PaMot As Single + Dim PaGetr As Single + Dim Pkup As Single + Dim Paux As Single + Dim Gear As Integer + Dim nU As Single + Dim vCoasting As Single + Dim Vmax As Single + Dim Vmin As Single + Dim Tlookahead As Integer + Dim vset1 As Single + Dim vset2 As Single + Dim j As Integer + Dim t As Integer + Dim adec As Single + Dim LookAheadDone As Boolean + Dim aCoasting As Single + Dim aRollout As Single + Dim Gears As New List(Of Integer) + Dim vRollout As Single + Dim ProgBarShare As Int16 + Dim ProgBarLACpart As Int16 + Dim dist As New List(Of Double) + Dim LastnU As Single = 0 + + + Dim MsgSrc As String + + + MsgSrc = "Power/PreRun" + + 'Check Input + If VEC.LookAheadOn AndAlso VEC.a_lookahead >= 0 Then + WorkerMsg(tMsgID.Err, "Lookahead deceleration invalid! Value must be below zero.", MsgSrc) + Return False + End If + + If VEC.OverSpeedOn And VEC.EcoRollOn Then + WorkerMsg(tMsgID.Err, "Overrun and Ecoroll can't be enabled both at the same time!", MsgSrc) + Return False + End If + + ' Initialize + Vh = MODdata.Vh + GearInput = DRI.Gvorg + RpmInput = DRI.Nvorg + + If VEC.EcoRollOn Or VEC.OverSpeedOn Then + If VEC.LookAheadOn Then + ProgBarShare = 4 + ProgBarLACpart = 2 + Else + ProgBarShare = 2 + ProgBarLACpart = 0 '0=OFF + End If + Else + If VEC.LookAheadOn Then + ProgBarShare = 2 + ProgBarLACpart = 1 + Else + ProgBarShare = 0 + ProgBarLACpart = 0 '0=OFF + End If + End If + + Positions = New List(Of Short) + + If GBX.TCon Then + EngSideInertia = ENG.I_mot + GBX.TCinertia + Else + EngSideInertia = ENG.I_mot + End If + + 'Distance over time + dist.Add(0) + For i = 1 To MODdata.tDim + dist.Add(dist(i - 1) + Vh.V(i)) + Next + + 'Generate Positions List + For i = 0 To MODdata.tDim + Positions.Add(0) + Next + + '*** Positions *** + '0... Normal (Cruise/Acc) + '1... Brake or Coasting + '2... Brake corrected with v(a) (.vacc file) + '3... Coasting + '4... Eco-Roll + + 'Overspeed / Eco-Roll Loop (Forward) + i = -1 + Do + i += 1 + + 'Check if cancellation pending + If VECTOworker.CancellationPending Then Return True + + Vact = Vh.V(i) + aact = Vh.a(i) + + 'Determine Driving-state ------------------------- + Pplus = False + Pminus = False + + If Vact < 0.0001 Then + VehState0 = tVehState.Stopped + Else + If aact >= 0.01 Then + VehState0 = tVehState.Acc + ElseIf aact < -0.01 Then + VehState0 = tVehState.Dec + Else + VehState0 = tVehState.Cruise + End If + End If + + 'Wheel-Power + Pwheel = fPwheel(i, Vh.fGrad(dist(i))) + + Select Case Pwheel + Case Is > 0.0001 + Pplus = True + Case Is < -0.0001 + Pminus = True + Case Else + P = 0 + End Select + + 'Gear + If VehState0 = tVehState.Stopped Then + Gear = 0 + + 'Engine Speed + If RpmInput Then + nU = MODdata.nUvorg(i) + Else + nU = ENG.Nidle + End If + + Else + + If GearInput Then + Gear = Math.Min(Vh.GearVorg(i), GBX.GearCount) + Else + Gear = fFastGearCalc(Vact, Pwheel) + End If + + 'Engine Speed + If RpmInput Then + nU = MODdata.nUvorg(i) + Else + nU = fnU(Vact, Gear, False) + End If + + End If + + 'ICE-inertia + If i = 0 Then + PaMot = 0 + Else + PaMot = fPaMot(nU, LastnU) + End If + + 'Aux Demand + Paux = fPaux(i, nU) + + 'Engine Power (at Clutch) + If Pplus Or Pminus Then + + PlossGB = fPlossGB(Pwheel, Vact, Gear, True) + PlossDiff = fPlossDiff(Pwheel, Vact, True) + PlossRt = fPlossRt(Vact, Gear) + PaGetr = fPaG(Vact, aact) + + Pkup = Pwheel + PlossGB + PlossDiff + PaGetr + PlossRt + P = Pkup + Paux + PaMot + + Else + + Pkup = 0 + P = Paux + PaMot + + End If + + 'Full load / motoring + Pmin = FLD(Gear).Pdrag(nU) + + If Vact >= VEC.vMin / 3.6 Then + + If VEC.EcoRollOn Then + + 'Secondary Progressbar + ProgBarCtrl.ProgJobInt = CInt((100 / ProgBarShare) * i / MODdata.tDim) + + If Pwheel < 0 Or (i > 0 AndAlso Vh.EcoRoll(i - 1)) Then + + Vmax = MODdata.Vh.Vsoll(i) + VEC.OverSpeed / 3.6 + Vmin = Math.Max(0, MODdata.Vh.Vsoll(i) - VEC.UnderSpeed / 3.6) + vRollout = fRolloutSpeed(i, 1, Vh.fGrad(dist(i))) + aRollout = (2 * vRollout - Vh.V0(i)) - Vh.V0(i) + + If vRollout < Vmin Then + + 'Eco-Roll deactivated + + ElseIf vRollout <= Vmax Then + + If 2 * vRollout - Vh.V0(i) > Vmax Then + Vh.SetSpeed0(i, Vmax) + ElseIf 2 * vRollout - Vh.V0(i) < Vmin Then + Vh.SetSpeed0(i, Vmin) + Else + Vh.SetSpeed(i, vRollout) + 'Vh.SetAcc(i, aRollout) + End If + + Positions(i) = 4 + + 'Mark position for Calc + Vh.EcoRoll(i) = True + + Else + + If 2 * Vmax - Vh.V0(i) >= Vmax Then + Vh.SetSpeed0(i, Vmax) + Else + Vh.SetSpeed(i, Vmax) + End If + + Positions(i) = 1 + + 'Do NOT mark position for Calc => Motoring NOT Idling + 'Vh.EcoRoll(i) = True + + End If + + + End If + + Else + + If P < Pmin Then + + If VEC.OverSpeedOn Then + + 'Secondary Progressbar + ProgBarCtrl.ProgJobInt = CInt((100 / ProgBarShare) * i / MODdata.tDim) + + vCoasting = fCoastingSpeed(i, dist(i), Gear) + Vmax = MODdata.Vh.Vsoll(i) + VEC.OverSpeed / 3.6 + + If vCoasting <= Vmax Then + + If 2 * vCoasting - Vh.V0(i) > Vmax Then + Vh.SetSpeed0(i, Vmax) + Else + Vh.SetSpeed(i, vCoasting) + End If + + Else + + If 2 * Vmax - Vh.V0(i) > Vmax Then + Vh.SetSpeed0(i, Vmax) + Else + Vh.SetSpeed(i, Vmax) + End If + + End If + + End If + + End If + + End If + + End If + + LastnU = nU + + Gears.Add(Gear) + + Loop Until i >= MODdata.tDim + + + 'Look Ahead & Limit Acc (Backward) + + 'Mark Brake Positions + For i = MODdata.tDim To 1 Step -1 + If Vh.V(i - 1) - Vh.V(i) > 0.0001 And Not Positions(i) = 4 Then Positions(i) = 1 + Next + + 'Look-Ahead Coasting + i = MODdata.tDim + 1 + Do + i -= 1 + + 'Secondary Progressbar + If ProgBarLACpart > 0 Then ProgBarCtrl.ProgJobInt = CInt((100 / ProgBarShare) * (MODdata.tDim - i) / MODdata.tDim + (ProgBarLACpart - 1) * (100 / ProgBarShare)) + + 'Check if cancellation pending + If VECTOworker.CancellationPending Then Return True + + If Positions(i) = 1 Then + vset2 = Vh.V(i) + For j = i To 0 Step -1 + If Positions(j) = 0 Or Positions(j) = 4 Then + vset1 = Vh.V(j) + Exit For + End If + Next + + 'Calc Coasting-Start time step + If VEC.LookAheadOn Then + Tlookahead = CInt((vset2 - vset1) / VEC.a_lookahead) + t = Math.Max(0, i - Tlookahead) + End If + + 'Check if target-speed change inside of Coasting Phase + For i0 = i To t Step -1 + If i0 = 0 Then Exit For + If Vh.Vsoll(i0) - Vh.Vsoll(i0 - 1) > 0.0001 Then + t = Math.Min(i0 + 1, i) + Exit For + End If + Next + + LookAheadDone = False + + 'Limit deceleration + adec = VEC.aDesMin(Vact) + If Vh.a(i) < adec Then Vh.SetMinAccBackw(i) + + i0 = i + + 'If vehicle stops too early reduce coasting time, i.e. set Coasting-Start later + If VEC.LookAheadOn Then + Do While i0 > t AndAlso fCoastingSpeed(t, dist(t), Gears(t), i0 - t) < Vh.V(i0) + t += 1 + Loop + End If + + + Do + i -= 1 + aact = Vh.a(i) + Vact = Vh.V(i) + adec = VEC.aDesMin(Vact) + + If aact < adec Then + Vh.SetMinAccBackw(i) + Positions(i) = 2 + Else + 'Coasting (Forward) + If VEC.LookAheadOn And Vact >= VEC.vMinLA / 3.6 Then + + For j = t To i0 + Vact = Vh.V(j) + vCoasting = fCoastingSpeed(j, dist(j), Gears(j)) + aCoasting = (2 * vCoasting - Vh.V0(j)) - Vh.V0(j) + If vCoasting < Vact And aCoasting >= VEC.aDesMin(Vact) Then + 'If Vrollout < Vist Then + Vh.SetSpeed(j, vCoasting) + Positions(j) = 3 + ' Vh.NoDistCorr(j) = True + Else + Exit For + End If + Next + + End If + + LookAheadDone = True + End If + + Loop Until LookAheadDone Or i = 0 + + i = i0 + + End If + + Loop Until i = 0 + + Return True + + End Function + + Public Function Calc() As Boolean + + Dim i As Integer + Dim M As Single + Dim nU As Single + Dim omega_p As Single + Dim omega1 As Single + Dim omega2 As Single + Dim nUx As Single + Dim PminX As Single + + Dim jz As Integer + + 'Start/Stop Control + Dim StStOff As Boolean + Dim StStTx As Single + Dim StStDelayTx As Integer + Dim StStPossible As Boolean + + Dim Vh As cVh + + Dim Gear As Integer + + Dim P As Single + Dim Pclutch As Single + Dim PaMot As Single + Dim PaGbx As Single + Dim Pmin As Single + Dim Pmax As Single + Dim Paux As Single + Dim Pbrake As Single + Dim PlossGB As Single + Dim PlossDiff As Single + Dim PlossRt As Single + Dim GVset As Boolean + Dim Vrollout As Single + Dim SecSpeedRed As Integer + Dim FirstSecItar As Boolean + Dim TracIntrIs As Single + + Dim amax As Single + + Dim ProgBarShare As Int16 + + Dim LastPmax As Single + Dim dist As Double + Dim dist0 As Double + + Dim MsgSrc As String + + MsgSrc = "Power/Calc" + + 'Abort if no speed given + If Not DRI.Vvorg Then + WorkerMsg(tMsgID.Err, "Driving cycle is not valid! Vehicle Speed required.", MsgSrc) + Return False + End If + + 'Messages + If Not Cfg.DistCorr Then WorkerMsg(tMsgID.Warn, "Distance Correction is disabled!", MsgSrc) + + ' Initialize + Vh = MODdata.Vh + + If VEC.EcoRollOn Or VEC.OverSpeedOn Or VEC.LookAheadOn Then + ProgBarShare = 2 + Else + ProgBarShare = 1 + End If + + If GBX.TCon Then + EngSideInertia = ENG.I_mot + GBX.TCinertia + Else + EngSideInertia = ENG.I_mot + End If + + If Cfg.GnUfromCycle Then + GearInput = DRI.Gvorg + RpmInput = DRI.Nvorg + If Not Cfg.BatchMode Then + If GearInput Then WorkerMsg(tMsgID.Normal, "Using gears from driving cycle", MsgSrc) + If RpmInput Then WorkerMsg(tMsgID.Normal, "Using rpm from driving cycle", MsgSrc) + End If + Else + If (DRI.Gvorg Or DRI.Nvorg) And Not Cfg.BatchMode Then WorkerMsg(tMsgID.Warn, "Gears/rpm from driving cycle ignored.", MsgSrc) + GearInput = False + RpmInput = False + End If + StStOff = False + StStTx = 0 + StStDelayTx = 0 + SecSpeedRed = 0 + + If GBX.TracIntrSi < 0.001 Then + TracIntrI = 0 + Else + TracIntrI = CInt(Math.Max(1, Math.Round(GBX.TracIntrSi, 0, MidpointRounding.AwayFromZero))) + End If + TracIntrIx = 0 + TracIntrOn = False + TracIntrTurnOff = False + + ClutchNorm = 0.03 + ClutchEta = 1 + + + LastClutch = tEngClutch.Opened + + 'Theoretical maximum speed [m/s] - set to Speed ​​at 1.2 x Nominal-Revolutions in top-Gear + GVmax = 1.2 * ENG.Nrated * 2 * VEH.rdyn * Math.PI / (1000 * GBX.Igetr(0) * GBX.Igetr(GBX.GearCount) * 60) + + dist = 0 + dist0 = 0 + + jz = -1 + + '*********************************************************************************************** + '*********************************** Time-loop **************************************** + '*********************************************************************************************** + + Do + jz += 1 + + MODdata.ModErrors.ResetAll() + + GVset = False + FirstSecItar = True + + 'Secondary Progressbar + ProgBarCtrl.ProgJobInt = CInt((100 / ProgBarShare) * jz / MODdata.tDim + (100 - 100 / ProgBarShare)) + + + ' Determine State +lbGschw: + + 'Reset the second by second Errors + MODdata.ModErrors.GeschRedReset() + + 'Calculate Speed​/Acceleration ------------------- + 'Now through DRI-class + Vact = Vh.V(jz) + aact = Vh.a(jz) + + 'distance + dist = dist0 + Vact + + StStPossible = False + EngState0 = tEngState.Undef + + 'If Speed over Top theoretical Speed => Reduce + If Vact > GVmax + 0.0001 And Not GVset Then + Vh.SetSpeed0(jz, GVmax) + GVset = True + GoTo lbGschw + End If + + 'Check if Acceleration is too high + amax = VEC.aDesMax(Vact) + + If amax < 0.0001 Then + WorkerMsg(tMsgID.Err, "aDesMax(acc) invalid! v= " & Vact & ", aDesMax(acc) =" & amax, MsgSrc) + Return False + End If + + If aact > amax + 0.0001 Then + + 'Vh.SetSpeed0(jz, Vh.V0(jz) + amax) + Vh.SetMaxAcc(jz) + + GoTo lbGschw + + + ElseIf FirstSecItar Then 'this is necessary to avoid speed reduction failure + + 'Check whether Deceleration too high + amax = VEC.aDesMin(Vact) + If amax > -0.001 Then + WorkerMsg(tMsgID.Err, "aDesMax(dec) invalid! v= " & Vact & ", aDesMax(dec) =" & amax, MsgSrc) + Return False + End If + If aact < amax - 0.0001 And Not Vh.EcoRoll(jz) Then + Vh.SetSpeed0(jz, Vh.V0(jz) + amax) + GoTo lbGschw + End If + + + End If + + + 'From Power ----- + If aact < 0 Then + If (Vact < 0.025) Then + 'Vh.SetSpeed(jz, 0) + 'GoTo lbGschw + Vact = 0 + End If + End If + '--------------- + + 'Determine Driving-state ------------------------- + Pplus = False + Pminus = False + + If Vact < 0.0001 Then + VehState0 = tVehState.Stopped + Else + If aact >= 0.01 Then + VehState0 = tVehState.Acc + ElseIf aact < -0.01 Then + VehState0 = tVehState.Dec + Else + VehState0 = tVehState.Cruise + End If + End If + + Pwheel = fPwheel(jz, Vh.fGrad(dist)) + + Select Case Pwheel + Case Is > 0.0001 + Pplus = True + Case Is < -0.0001 + Pminus = True + End Select + + 'Eco-Roll Speed Correction (because PreRun speed profile might still be too high or speed might generally be too low) + If Vh.EcoRoll(jz) AndAlso Vact > MODdata.Vh.Vsoll(jz) - VEC.UnderSpeed / 3.6 AndAlso Not VehState0 = tVehState.Stopped AndAlso Pplus Then + Vh.ReduceSpeed(jz, 0.9999) + FirstSecItar = False + GoTo lbGschw + End If + + '************************************ Gear selection ************************************ + If VehState0 = tVehState.Stopped Or TracIntrOn Then + + If TracIntrTurnOff And Not VehState0 = tVehState.Stopped Then + + Gear = TracIntrGear + + If Not GBX.TCon AndAlso fnn(Vact, Gear, False) < ClutchNorm And Pplus Then + Clutch = tEngClutch.Slipping + Else + Clutch = tEngClutch.Closed + End If + + Else + Gear = 0 + Clutch = tEngClutch.Opened + End If + + Else + + 'Check whether Clutch will slip (important for Gear-shifting model): + If Not GBX.TCon AndAlso fnn(Vact, 1, False) < ClutchNorm And Pplus Then + Clutch = tEngClutch.Slipping + Else + Clutch = tEngClutch.Closed + End If + + If GearInput Then + 'Gear-settings + Gear = Math.Min(Vh.GearVorg(jz), GBX.GearCount) + ElseIf RpmInput Then + 'Revolutions-setting + Gear = fGearByU(MODdata.nUvorg(jz), Vact) + ElseIf GBX.GearCount = 1 Then + Gear = 1 + Else + + 'Gear-shifting Model + If GBX.TCon Then + Gear = fGearTC(jz, Vh.fGrad(dist)) + Else + Gear = fGearVECTO(jz, Vh.fGrad(dist)) + End If + + 'Must be reset here because the Gear-shifting model may cause changes + MODdata.ModErrors.PxReset() + + End If + + 'Gear shifting-model / gear input can open Clutch + If Gear < 1 Then + + Clutch = tEngClutch.Opened + + Else + + If Not GBX.TCon AndAlso fnn(Vact, Gear, False) < ClutchNorm And Pplus And Not VehState0 = tVehState.Dec Then + Clutch = tEngClutch.Slipping + Else + Clutch = tEngClutch.Closed + End If + + End If + + End If + + If Gear = -1 Then + WorkerMsg(tMsgID.Err, "Error in Gear Shift Model!", MsgSrc & "/t= " & jz + 1) + Return False + End If + + 'Eco-Roll (triggers if Pwheel < 2 [kW]) + If Vh.EcoRoll(jz) AndAlso Pwheel <= 0 Then + Clutch = tEngClutch.Opened + Gear = 0 + End If + + If Gear = 1 And Pminus And Vact <= 5 / 3.6 Then + Clutch = tEngClutch.Opened + Gear = 0 + End If + + ' Important checks +lbCheck: + + 'Falls vor Gangwahl festgestellt wurde, dass nicht KupplSchleif, dann bei zu niedriger Drehzahl runterschalten: |@@| If before?(vor) Gear-shift is detected that Clutch does not Lock, then Downshift at too low Revolutions: + If Not GBX.TCon Then + If Clutch = tEngClutch.Closed Then + If fnn(Vact, Gear, False) < ClutchNorm And Not VehState0 = tVehState.Dec And Gear > 1 Then Gear -= 1 + End If + End If + + + 'Check whether idling although Power > 0 + ' if power at wheels > 0.2 [kW], then clutch in + If Clutch = tEngClutch.Opened Then + If Pwheel > 0.2 Then + + If TracIntrOn Then + Gear = TracIntrGear + Else + Gear = 1 + End If + + + If Not GBX.TCon AndAlso fnn(Vact, Gear, False) < ClutchNorm Then + Clutch = tEngClutch.Slipping + Else + Clutch = tEngClutch.Closed + End If + + GoTo lbCheck + + End If + End If + + '************************************ Revolutions ************************************ + + '*** If Revolutions specified then the next block is skipped *** + If RpmInput Then + + nU = MODdata.nUvorg(jz) + + 'If Start/Stop then it will be set at the same nn < -0.05 to nU = 0 + If VEC.StartStop And nU < ENG.Nidle - 100 Then + If Pplus Then + nU = ENG.Nidle + If FirstSecItar Then WorkerMsg(tMsgID.Warn, "target rpm < rpm_idle while power demand > 0", MsgSrc & "/t= " & jz + 1) + Else + nU = 0 + End If + End If + + If nU < ENG.Nidle - 100 And Not VEC.StartStop Then + If FirstSecItar Then WorkerMsg(tMsgID.Warn, "target rpm < rpm_idle (Start/Stop disabled)", MsgSrc & "/t= " & jz + 1) + End If + + GoTo lb_nOK + + End If + + 'Revolutions drop when decoupling + If Clutch = tEngClutch.Opened Then + If jz = 0 Then + nU = ENG.Nidle + Else + + If MODdata.nU(jz - 1) <= ENG.Nidle + 0.00001 Then + nU = MODdata.nU(jz - 1) + GoTo lb_nOK + End If + + + nUx = MODdata.nU(jz - 1) + omega1 = nUx * 2 * Math.PI / 60 + Pmin = 0 + nU = nUx + i = 0 + Do + PminX = Pmin + Pmin = FLD(Gear).Pdrag(nU) + + 'Limit Power-drop to 75% + P = (MODdata.Pe(jz - 1) - MODdata.PauxSum(jz - 1)) - 0.75 * ((MODdata.Pe(jz - 1) - MODdata.PauxSum(jz - 1)) - Pmin) + + M = -P * 1000 * 60 / (2 * Math.PI * nU) + omega_p = M / EngSideInertia + omega2 = omega1 - omega_p + nU = omega2 * 60 / (2 * Math.PI) + i += 1 + '01:10:12 Luz: Revolutions must not be higher than previously + If nU > nUx Then + nU = nUx + Exit Do + End If + Loop Until Math.Abs(Pmin - PminX) < 0.001 Or nU <= ENG.Nidle Or i = 999 + + 'If i = 999 Then WorkerMsg(tMsgID.Warn, "i=999", MsgSrc & "/t= " & jz + 1) + + nU = Math.Max(ENG.Nidle, nU) + + MODdata.ModErrors.FLDextrapol = "" + + End If + + Else + + If GBX.TCon And GBX.IsTCgear(Gear) Then + + PlossGB = fPlossGB(Pwheel, Vact, Gear, False) + PlossDiff = fPlossDiff(Pwheel, Vact, False) + PlossRt = fPlossRt(Vact, Gear) + PaGbx = fPaG(Vact, aact) + Pclutch = Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt + + If jz = 0 Then + If Not GBX.TCiteration(Gear, fnUout(Vact, Gear), Pclutch, jz) Then + WorkerMsg(tMsgID.Err, "TC Iteration failed!", MsgSrc & "/t= " & jz + 1) + Return False + End If + Else + If Not GBX.TCiteration(Gear, fnUout(Vact, Gear), Pclutch, jz, MODdata.nU(jz - 1), MODdata.Pe(jz - 1)) Then + WorkerMsg(tMsgID.Err, "TC Iteration failed!", MsgSrc & "/t= " & jz + 1) + Return False + End If + End If + + If GBX.TCNeutral Then + Gear = 0 + Clutch = tEngClutch.Opened + GoTo lbCheck + End If + + If GBX.TCReduce Then + Vh.ReduceSpeed(jz, 0.999) + FirstSecItar = False + GoTo lbGschw + End If + + nU = GBX.TCnUin + + Else + + nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + + '*** Start: Revolutions Check + + 'Check whether Revolutions too high! => Speed Reduction + Do While nU > 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle + Gear += 1 + nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + Loop + + 'Check whether Revolutions too low with the Clutch closed + If Clutch = tEngClutch.Closed Then + If nU < ENG.Nidle + 0.0001 Then + Gear -= 1 + nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + End If + End If + + End If + + End If + + + + +lb_nOK: + + + '************************************ Determine Engine-state ************************************ + ' nU is final here! + + 'Determine Aux power demand (from VEH and DRI) + Paux = fPaux(jz, Math.Max(nU, ENG.Nidle)) + + 'ICE-inertia + If jz = 0 Then + PaMot = 0 + Else + 'Not optimal since jz-1 to jz not the right interval + PaMot = fPaMot(nU, MODdata.nU(jz - 1)) + End If + + + + 'Total Engine-power + ' => Pantr + ' => P + ' => Pkup + Select Case Clutch + Case tEngClutch.Opened + P = Paux + PaMot + Pclutch = 0 + PlossGB = 0 + PlossDiff = 0 + PlossRt = 0 + PaGbx = 0 + Case tEngClutch.Closed + + If GBX.TCon And GBX.IsTCgear(Gear) Then + + P = nMtoPe(nU, GBX.TCMin) + Paux + PaMot + + Else + + PlossGB = fPlossGB(Pwheel, Vact, Gear, False) + PlossDiff = fPlossDiff(Pwheel, Vact, False) + PlossRt = fPlossRt(Vact, Gear) + PaGbx = fPaG(Vact, aact) + Pclutch = Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt + P = Pclutch + Paux + PaMot + + End If + Case Else 'tEngClutch.Slipping: never in AT mode! + PlossGB = fPlossGB(Pwheel, Vact, Gear, False) + PlossDiff = fPlossDiff(Pwheel, Vact, False) + PlossRt = fPlossRt(Vact, Gear) + PaGbx = fPaG(Vact, aact) + Pclutch = (Pwheel + PlossGB + PlossDiff + PaGbx + PlossRt) / ClutchEta + P = Pclutch + Paux + PaMot + End Select + + 'EngState + If Clutch = tEngClutch.Opened Then + + 'Start/Stop >>> tEngState.Stopped + If VEC.StartStop AndAlso Vact <= VEC.StStV / 3.6 AndAlso Math.Abs(PaMot) < 0.0001 Then + StStPossible = True + If StStOff And jz > 0 Then + If MODdata.EngState(jz - 1) = tEngState.Stopped Then + P = 0 + EngState0 = tEngState.Stopped + End If + Else + P = 0 + EngState0 = tEngState.Stopped + End If + End If + + Select Case P + Case Is > 0.0001 'Antrieb + EngState0 = tEngState.Load + + Case Is < -0.0001 'Schlepp + EngState0 = tEngState.Drag + + Case Else 'Idle/Stop + If Not EngState0 = tEngState.Stopped Then EngState0 = tEngState.Idle + End Select + + Else + + If P < 0 Then + EngState0 = tEngState.Drag + Else + EngState0 = tEngState.Load + End If + + End If + + + + '*************** Leistungsverteilung usw. ****************** |@@| Power distribution, etc. ****************** + + 'Full-Load/Drag curve + If EngState0 = tEngState.Stopped Then + + Pmin = 0 + Pmax = 0 + + 'Revolutions Correction + nU = 0 + + Else + + Pmin = FLD(Gear).Pdrag(nU) + + If jz = 0 Then + Pmax = FLD(Gear).Pfull(nU) + Else + Pmax = FLD(Gear).Pfull(nU, MODdata.Pe(jz - 1)) + End If + + 'If Pmax < 0 or Pmin > 0 then Abort with Error! + If Pmin >= 0 And P < 0 Then + WorkerMsg(tMsgID.Err, "Pe_drag > 0! n= " & nU & " [1/min]", MsgSrc & "/t= " & jz + 1, FLD(Gear).FilePath) + Return False + ElseIf Pmax <= 0 And P > 0 Then + WorkerMsg(tMsgID.Err, "Pe_full < 0! n= " & nU & " [1/min]", MsgSrc & "/t= " & jz + 1, FLD(Gear).FilePath) + Return False + End If + + End If + + ' => Pbrake + If Clutch = tEngClutch.Opened Then + If Pwheel < -0.00001 Then + Pbrake = Pwheel + Else + Pbrake = 0 + End If + + If P < Pmin Then P = Pmin + + Else + If EngState0 = tEngState.Load Then + Pbrake = 0 + If GBX.TCon And GBX.IsTCgear(Gear) Then Pbrake = GBX.TC_PeBrake + If Math.Abs(P / Pmax - 1) < 0.02 Then EngState0 = tEngState.FullLoad + Else ' tEngState.Drag (tEngState.Idle, tEngState.Stopped kann's hier nicht geben weil Clutch <> Closed) + If P < Pmin Then + + 'Overspeed + 'If Not OvrSpeed AndAlso Not VehState0 = tVehState.Dec Then + + ' OvrSpeed = True + + ' If DEV.OverSpeedOn And (Pmin - P) / VEH.Pnenn > DEV.SpeedPeEps Then + + ' Vcoasting = fCoastingSpeed(jz, Gear) + + ' If Vcoasting <= MODdata.Vh.Vsoll(jz) + DEV.OverSpeed / 3.6 Then + ' Vh.SetSpeed(jz, Vcoasting) + ' GoTo lbGschw + ' ElseIf Vist < 0.999 * (MODdata.Vh.Vsoll(jz) + DEV.OverSpeed / 3.6) Then + ' Vh.SetSpeed(jz, MODdata.Vh.Vsoll(jz) + DEV.OverSpeed / 3.6) + ' GoTo lbGschw + ' End If + + ' End If + 'End If + + MODdata.ModErrors.TrLossMapExtr = "" + + 'VKM to Drag-curve + P = Pmin + + 'Forward-calculation to Wheel (PvorD) + Pclutch = P - Paux - PaMot + PaGbx = fPaG(Vact, aact) + PlossGB = fPlossGBfwd(Pclutch, Vact, Gear, False) + PlossRt = fPlossRt(Vact, Gear) + PlossDiff = fPlossDiffFwd(Pclutch - PlossGB - PlossRt, Vact, False) + + Pbrake = Pwheel - (Pclutch - PlossGB - PlossDiff - PaGbx - PlossRt) + + EngState0 = tEngState.FullDrag + Else + Pbrake = 0 + End If + End If + End If + + 'Check if cancellation pending (before Speed-reduce-iteration, otherwise it hangs) + If VECTOworker.CancellationPending Then Return True + + 'Check whether P above Full-load => Reduce Speed + If Pplus And P > Pmax Then + If EngState0 = tEngState.Load Or EngState0 = tEngState.FullLoad Then + If Vact > 0.01 Then + Vh.ReduceSpeed(jz, 0.9999) + FirstSecItar = False + GoTo lbGschw + Else + 'ERROR: Speed Reduction brings nothing? ... + WorkerMsg(tMsgID.Err, "Speed reduction failed!", MsgSrc & "/t= " & jz + 1) + Return False + End If + Else 'tEngState.Idle, tEngState.Stopped, tEngState.Drag + 'ERROR: Engine not in Drivetrain ... can it be? + If FirstSecItar Then + If P > 0.1 Then WorkerMsg(tMsgID.Warn, "Pwheel > 0 but EngState undefined ?!", MsgSrc & "/t= " & jz + 1) + End If + End If + End If + + + 'Interruption of traction(Zugkraftunterbrechung) + If TracIntrI > 0 Then + + If Not TracIntrOn Then + + If jz > 0 AndAlso Gear > 0 AndAlso MODdata.Gear(jz - 1) > 0 AndAlso Gear <> MODdata.Gear(jz - 1) Then + + TracIntrGear = Gear + Gear = 0 + Clutch = tEngClutch.Opened + TracIntrIx = 0 + TracIntrOn = True + + If TracIntrIx + 1 = TracIntrI Then + TracIntrIs = GBX.TracIntrSi - CSng(TracIntrIx) + Else + TracIntrIs = 1 + End If + + Vrollout = fRolloutSpeed(jz, TracIntrIs, Vh.fGrad(dist)) + + If Vrollout < Vact Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz, Vrollout) + + GoTo lbGschw + + End If + + End If + + End If + + '-------------------------------------------------------------------------------------------------- + '------------------------- PNR -------------------------------------------------------------------- + '-------------------------------------------------------------------------------------------------- + ' Finish Second + + 'distance + dist0 += Vact + + 'Start / Stop - Activation-Speed Control + If VEC.StartStop Then + If StStPossible Then + StStDelayTx += 1 + Else + StStDelayTx = 0 + End If + If StStOff Then + If Not EngState0 = tEngState.Stopped Then + StStTx += 1 + If StStTx > VEC.StStT And StStDelayTx >= VEC.StStDelay Then + StStTx = 1 + StStOff = False + End If + End If + Else + If EngState0 = tEngState.Stopped Or StStDelayTx < VEC.StStDelay Then StStOff = True + End If + End If + + 'Write Modal-values Fields + MODdata.Pe.Add(P) + MODdata.nU.Add(nU) + + MODdata.EngState.Add(EngState0) + + MODdata.Pa.Add(fPaFZ(MODdata.Vh.V(jz), MODdata.Vh.a(jz))) + MODdata.Pair.Add(fPair(MODdata.Vh.V(jz), jz)) + MODdata.Proll.Add(fPr(MODdata.Vh.V(jz), Vh.fGrad(dist))) + MODdata.Pstg.Add(fPs(MODdata.Vh.V(jz), Vh.fGrad(dist))) + MODdata.Pbrake.Add(Pbrake) + MODdata.Psum.Add(Pwheel) + MODdata.PauxSum.Add(Paux) + MODdata.Grad.Add(Vh.fGrad(dist)) + + For Each AuxID As String In VEC.AuxRefs.Keys + MODdata.Paux(AuxID).Add(VEC.Paux(AuxID, jz, Math.Max(nU, ENG.Nidle))) + Next + + MODdata.PlossGB.Add(PlossGB) + MODdata.PlossDiff.Add(PlossDiff) + MODdata.PlossRt.Add(PlossRt) + MODdata.PaEng.Add(PaMot) + MODdata.PaGB.Add(PaGbx) + MODdata.Pclutch.Add(Pclutch) + + MODdata.VehState.Add(VehState0) + MODdata.Gear.Add(Gear) + + 'Torque Converter output + If GBX.TCon Then + If GBX.IsTCgear(Gear) Then + If nU = 0 Then + MODdata.TCnu.Add(0) + Else + MODdata.TCnu.Add(GBX.TCnUout / nU) + End If + If GBX.TCMin = 0 Then + MODdata.TCmu.Add(0) + Else + MODdata.TCmu.Add(GBX.TCMout / GBX.TCMin) + End If + MODdata.TCMout.Add(GBX.TCMout) + MODdata.TCnOut.Add(GBX.TCnUout) + Else + If Clutch = tEngClutch.Opened Then + MODdata.TCnu.Add(0) + MODdata.TCmu.Add(0) + MODdata.TCMout.Add(0) + MODdata.TCnOut.Add(0) + Else + MODdata.TCnu.Add(1) + MODdata.TCmu.Add(1) + MODdata.TCMout.Add(nPeToM(nU, Pclutch)) + MODdata.TCnOut.Add(nU) + End If + End If + End If + + Vh.DistCorrection(jz, VehState0) + + 'Traction Interruption + If TracIntrTurnOff Then + + TracIntrOn = False + TracIntrTurnOff = False + + ElseIf TracIntrOn Then + + TracIntrIx += 1 + + If TracIntrIx = TracIntrI Then + + TracIntrTurnOff = True + + ElseIf jz < MODdata.tDim Then + + If TracIntrIx + 1 = TracIntrI Then + TracIntrIs = GBX.TracIntrSi - CSng(TracIntrIx) + Else + TracIntrIs = 1 + End If + + Vrollout = fRolloutSpeed(jz + 1, TracIntrIs, Vh.fGrad(dist)) + If Vrollout < Vact Or VehState0 <> tVehState.Dec Then Vh.SetSpeed(jz + 1, Vrollout) + + End If + + End If + + If Vh.Vsoll(jz) - Vact > 1.5 Then SecSpeedRed += 1 + + + LastGearChange = -1 + For i = jz - 1 To 0 Step -1 + If MODdata.Gear(i) <> 0 Then + If MODdata.Gear(i) <> Gear Then + LastGearChange = i + Exit For + End If + End If + Next + + + LastClutch = Clutch + + 'Messages + If MODdata.ModErrors.MsgOutputAbort(jz + 1, MsgSrc) Then Return False + + If Clutch = tEngClutch.Closed And RpmInput Then + If Math.Abs(nU - fnU(Vact, Gear, False)) > 0.2 * ENG.Nrated Then + WorkerMsg(tMsgID.Warn, "Target rpm =" & nU & ", calculated rpm(gear " & Gear & ")= " & fnU(Vact, Gear, False), MsgSrc & "/t= " & jz + 1) + End If + End If + + LastPmax = Pmax + + Loop Until jz >= MODdata.tDim + + '*********************************************************************************************** + '*********************************** Time loop END *********************************** + '*********************************************************************************************** + + 'Notify + If Cfg.DistCorr Then + If MODdata.tDim > MODdata.tDimOgl Then WorkerMsg(tMsgID.Normal, "Cycle extended by " & MODdata.tDim - MODdata.tDimOgl & " seconds to meet target distance.", MsgSrc) + + If Math.Abs(Vh.WegIst - Vh.WegSoll) > 80 Then + WorkerMsg(tMsgID.Warn, "Target distance= " & (Vh.WegSoll / 1000).ToString("#.000") & "[km], Actual distance= " & (Vh.WegIst / 1000).ToString("#.000") & "[km], Error= " & Math.Abs(Vh.WegIst - Vh.WegSoll).ToString("#.0") & "[m]", MsgSrc) + Else + WorkerMsg(tMsgID.Normal, "Target distance= " & (Vh.WegSoll / 1000).ToString("#.000") & "[km], Actual distance= " & (Vh.WegIst / 1000).ToString("#.000") & "[km], Error= " & Math.Abs(Vh.WegIst - Vh.WegSoll).ToString("#.0") & "[m]", MsgSrc) + End If + End If + + If SecSpeedRed > 0 Then WorkerMsg(tMsgID.Normal, "Speed reduction > 1.5 m/s in " & SecSpeedRed & " time steps.", MsgSrc) + + + 'CleanUp + Vh = Nothing + + Return True + + End Function + + Public Function Eng_Calc(ByVal NoWarnings As Boolean) As Boolean + + Dim Pmr As Single + Dim t As Integer + Dim t1 As Integer + Dim Pmin As Single + Dim Pmax As Single + Dim nUDRI As List(Of Double) + Dim PeDRI As List(Of Double) + Dim PcorCount As Integer + Dim MsgSrc As String + Dim Padd As Single + + MsgSrc = "Power/Eng_Calc" + + 'Abort if Power/Revolutions not given + If Not (DRI.Nvorg And DRI.Pvorg) Then + WorkerMsg(tMsgID.Err, "Load cycle is not valid! rpm and load required.", MsgSrc) + Return False + End If + + PcorCount = 0 + t1 = MODdata.tDim + nUDRI = DRI.Values(tDriComp.nU) + PeDRI = DRI.Values(tDriComp.Pe) + + 'Drehzahlen vorher weil sonst scheitert die Pmr-Berechnung bei MODdata.nU(t + 1) |@@| Revolutions previously, otherwise Pmr-calculation fails at MODdata.nU(t + 1) + For t = 0 To t1 + MODdata.nU.Add(Math.Max(0, nUDRI(t))) + Next + + 'Power calculation + For t = 0 To t1 + + 'Secondary Progressbar + ProgBarCtrl.ProgJobInt = CInt(100 * t / t1) + + 'Reset the second-by-second Errors + MODdata.ModErrors.ResetAll() + + 'OLD and wrong because not time shifted: P_mr(jz) = 0.001 * (I_mot * 0.0109662 * (n(jz) * nnrom) * nnrom * (n(jz) - n(jz - 1))) + If t > 0 And t < t1 Then + Pmr = 0.001 * (ENG.I_mot * (2 * Math.PI / 60) ^ 2 * MODdata.nU(t) * 0.5 * (MODdata.nU(t + 1) - MODdata.nU(t - 1))) + Else + Pmr = 0 + End If + + Padd = MODdata.Vh.Padd(t) + + 'Power = P_clutch + + Pa_eng + Padd + MODdata.Pe.Add(PeDRI(t) + (Pmr + Padd)) + + 'Revolutions of the Cycle => Determined in Cycle-init + 'If Revolutions under idle, assume Engine is stopped + If MODdata.nU(t) < ENG.Nidle - 100 Then + EngState0 = tEngState.Stopped + Else + Pmin = FLD(0).Pdrag(MODdata.nU(t)) + + If t = 0 Then + Pmax = FLD(0).Pfull(MODdata.nU(t)) + Else + Pmax = FLD(0).Pfull(MODdata.nU(t), MODdata.Pe(t - 1)) + End If + + 'If Pmax < 0 or Pmin > 0 then Abort with Error! + If Pmin >= 0 AndAlso MODdata.Pe(t) < 0 Then + WorkerMsg(tMsgID.Err, "Pe_drag > 0! n= " & MODdata.nU(t) & " [1/min]", MsgSrc & "/t= " & t + 1, FLD(0).FilePath) + Return False + ElseIf Pmax <= 0 AndAlso MODdata.Pe(t) > 0 Then + WorkerMsg(tMsgID.Err, "Pe_full < 0! n= " & MODdata.nU(t) & " [1/min]", MsgSrc & "/t= " & t + 1, FLD(0).FilePath) + Return False + End If + + 'FLD Check + If MODdata.Pe(t) > Pmax Then + If MODdata.Pe(t) / Pmax > 1.05 Then PcorCount += 1 + MODdata.Pe(t) = Pmax + ElseIf MODdata.Pe(t) < Pmin Then + If MODdata.Pe(t) / Pmin > 1.05 And MODdata.Pe(t) > -99999 Then PcorCount += 1 + MODdata.Pe(t) = Pmin + End If + + Select Case MODdata.Pe(t) + Case Is > 0.0001 'Antrieb + If Math.Abs(MODdata.Pe(t) / Pmax - 1) < 0.01 Then + EngState0 = tEngState.FullLoad + Else + EngState0 = tEngState.Load + End If + Case Is < -0.0001 'Schlepp + If Math.Abs(MODdata.Pe(t) / Pmin - 1) < 0.01 Then + EngState0 = tEngState.FullDrag + Else + EngState0 = tEngState.Drag + End If + Case Else + EngState0 = tEngState.Idle + End Select + End If + + MODdata.EngState.Add(EngState0) + MODdata.PaEng.Add(Pmr) + MODdata.Pclutch.Add(MODdata.Pe(t) - (Pmr + Padd)) + MODdata.PauxSum.Add(Padd) + + 'Notify + If MODdata.ModErrors.MsgOutputAbort(t + 1, MsgSrc) Then Return False + + Next + + If PcorCount > 0 And Not NoWarnings Then WorkerMsg(tMsgID.Warn, "Power corrected (>5%) in " & PcorCount & " time steps.", MsgSrc) + + Return True + + End Function + + Private Function fTracIntPower(ByVal t As Single, ByVal Gear As Integer) As Single + Dim PminX As Single + Dim P As Single + Dim M As Single + Dim Pmin As Single + Dim nU As Single + Dim omega_p As Single + Dim omega1 As Single + Dim omega2 As Single + Dim nUx As Single + Dim i As Integer + + + nUx = MODdata.nU(t - 1) + omega1 = nUx * 2 * Math.PI / 60 + Pmin = 0 + nU = nUx + i = 0 + + Do + PminX = Pmin + Pmin = FLD(Gear).Pdrag(nU) + 'Leistungsabfall limitieren auf Pe(t-1) minus 75% von (Pe(t-1) - Pschlepp) |@@| Limit Power-drop to Pe(t-1) minus 75% of (Pe(t-1) - Pdrag) + ' aus Auswertung ETC des Motors mit dem dynamische Volllast parametriert wurde |@@| of the evaluated ETC of the Enginges with the dynamic parametrized Full-load + ' Einfluss auf Beschleunigungsvermögen gering (Einfluss durch Pe(t-1) bei dynamischer Volllast mit PT1) |@@| Influence at low acceleration (influence dynamic Full-load through Pe(t-1) with PT1) + ' Luz/Rexeis 21.08.2012 + ' Iteration loop: 01.10.2012 + P = MODdata.Pe(t - 1) - 0.75 * (MODdata.Pe(t - 1) - Pmin) + M = -P * 1000 * 60 / (2 * Math.PI * nU) + 'original: M = -Pmin * 1000 * 60 / (2 * Math.PI * ((nU + nUx) / 2)) + omega_p = M / EngSideInertia + omega2 = omega1 - omega_p + nU = omega2 * 60 / (2 * Math.PI) + i += 1 + '01:10:12 Luz: Revolutions must not be higher than previously + If nU > nUx Then + nU = nUx + Exit Do + End If + Loop Until Math.Abs(Pmin - PminX) < 0.001 Or nU <= ENG.Nidle Or i = 999 + + Return P + + + End Function + + Private Function fRolloutSpeed(ByVal t As Integer, ByVal dt As Single, ByVal Grad As Single) As Single + + Dim vstep As Double + Dim vVorz As Integer + Dim PvD As Single + Dim a As Single + Dim v As Single + Dim eps As Single + Dim LastPvD As Single + Dim vMin As Single + + v = MODdata.Vh.V(t) + + vMin = (MODdata.Vh.V0(t) + 0) / 2 + + If v <= vMin Then Return vMin + + vstep = 0.1 + eps = 0.00005 + a = MODdata.Vh.a(t) + + PvD = fPwheel(t, v, a, Grad) + + If PvD > eps Then + vVorz = -1 + ElseIf PvD < -eps Then + vVorz = 1 + Else + Return v + End If + + LastPvD = PvD + 10 * eps + + Do While Math.Abs(PvD) > eps And Math.Abs(LastPvD - PvD) > eps + + If Math.Abs(LastPvD) < Math.Abs(PvD) Then + vVorz *= -1 + vstep *= 0.5 + + If vstep = 0 Then Exit Do + + End If + + v += vVorz * vstep + + If v < vMin Then + + LastPvD = 0 + v -= vVorz * vstep + + Else + + a = 2 * (v - MODdata.Vh.V0(t)) / dt + + LastPvD = PvD + + PvD = fPwheel(t, v, a, Grad) + + End If + + Loop + + Return v + + End Function + + Private Function fCoastingSpeed(ByVal t As Integer, ByVal s As Double, ByVal Gear As Integer) As Single + + Return fCoastingSpeed(t, s, Gear, MODdata.Vh.V(t), MODdata.Vh.a(t)) + + End Function + + Private Function fCoastingSpeed(ByVal t As Integer, ByVal s As Double, ByVal Gear As Integer, ByVal v As Single, ByVal a As Single, Optional ByVal v0 As Single? = Nothing) As Single + + Dim vstep As Double + Dim vSign As Integer + Dim Pe As Single + Dim Pwheel As Single + Dim LastDiff As Single + Dim Diff As Single + Dim nU As Single + Dim Pdrag As Single + Dim Grad As Single + + + vstep = 5 + nU = fnU(v, Gear, False) + Pdrag = FLD(Gear).Pdrag(nU) + + 'Do not allow positive road gradients + Grad = MODdata.Vh.fGrad(s) + + + Pwheel = fPwheel(t, v, a, Grad) + Pe = Pwheel + fPlossGB(Pwheel, v, Gear, True) + fPlossDiff(Pwheel, v, True) + fPaG(v, a) + fPlossRt(v, Gear) + fPaux(t, nU) + fPaMotSimple(t, Gear, v, a) + + Diff = Math.Abs(Pdrag - Pe) + + If Diff > 0.0001 Then + vSign = 1 + Else + Return v + End If + + LastDiff = Diff + 10 * 0.0001 + + Do While Diff > 0.0001 'And Math.Abs(LastDiff - Diff) > eps + + If LastDiff < Diff Or v + vSign * vstep <= 0.0001 Then + vSign *= -1 + vstep *= 0.5 + + If vstep < 0.00001 Then Exit Do + + End If + + v += vSign * vstep + + If v0 Is Nothing Then + a = 2 * (v - MODdata.Vh.V0(t)) / 1 'dt = 1[s] + Else + a = 2 * (v - v0) / 1 'dt = 1[s] + End If + + nU = fnU(v, Gear, False) + Pdrag = FLD(Gear).Pdrag(nU) + + LastDiff = Diff + + Pwheel = fPwheel(t, v, a, Grad) + Pe = Pwheel + fPlossGB(Pwheel, v, Gear, True) + fPlossDiff(Pwheel, v, True) + fPaG(v, a) + fPlossRt(v, Gear) + fPaux(t, nU) + fPaMotSimple(t, Gear, v, a) + + Diff = Math.Abs(Pdrag - Pe) + + Loop + + Return v + + End Function + + Private Function fCoastingSpeed(ByVal t As Integer, ByVal s As Double, ByVal Gear As Integer, ByVal dt As Integer) As Single + Dim a As Single + Dim v As Single + Dim vtemp As Single + Dim t0 As Integer + Dim v0 As Single + Dim v0p As Single + + v0 = MODdata.Vh.V0(t) + v = MODdata.Vh.V(t) + a = MODdata.Vh.a(t) + + If t + dt > MODdata.tDim - 1 Then + dt = MODdata.tDim - 1 - t + End If + + For t0 = t To t + dt + vtemp = fCoastingSpeed(t0, s, Gear, v, a, v0) + + If 2 * vtemp - v0 < 0 Then vtemp = v0 / 2 + + v0p = 2 * vtemp - v0 + a = v0p - v0 + + v = (MODdata.Vh.V0(t0 + 2) + v0p) / 2 + a = MODdata.Vh.V0(t0 + 2) - v0p + + v0 = v0p + + Next + + Return vtemp + + End Function + +#Region "Gear Shift Methods" + + Private Function fFastGearCalc(ByVal V As Single, ByVal Pe As Single) As Integer + Dim Gear As Integer + Dim Tq As Single + Dim nU As Single + Dim nUup As Single + Dim nUdown As Single + + For Gear = GBX.GearCount To 1 Step -1 + + nU = CSng(Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(Gear) / (2 * VEH.rdyn * Math.PI / 1000)) + + 'Current torque demand with previous gear + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + + 'Up/Downshift rpms + nUup = GBX.Shiftpolygons(Gear).fGSnUup(Tq) + nUdown = GBX.Shiftpolygons(Gear).fGSnUdown(Tq) + + If nU > nUdown Then Return Gear + + Next + + Return 1 + + End Function + + Private Function fStartGear(ByVal t As Integer, ByVal Grad As Single) As Integer + Dim Gear As Integer + Dim MsgSrc As String + Dim nU As Single + Dim nUup As Single + Dim nUdown As Single + Dim Tq As Single + Dim Pe As Single + Dim MdMax As Single + Dim Pmax As Single + + MsgSrc = "StartGear" + + If GBX.TCon Then Return 1 + + If t = 0 AndAlso VehState0 <> tVehState.Stopped Then + + 'Calculate gear when cycle starts with speed > 0 + For Gear = GBX.GearCount To 1 Step -1 + + 'rpm + nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + + 'full load + Pmax = FLD(Gear).Pfull(nU) + + 'power demand - cut at full load / drag so that fGSnnUp and fGSnnDown don't extrapolate + Pe = Math.Min(fPeGearMod(Gear, t, Grad), Pmax) + Pe = Math.Max(Pe, FLD(Gear).Pdrag(nU)) + + 'torque demand + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + + 'Up/Downshift rpms + nUup = GBX.Shiftpolygons(Gear).fGSnUup(Tq) + nUdown = GBX.Shiftpolygons(Gear).fGSnUdown(Tq) + + 'Max torque + MdMax = Pmax * 1000 / (nU * 2 * Math.PI / 60) + + 'Find highest gear with rpm below Upshift-rpm and with enough torque reserve + If nU < nUup And nU > nUdown And 1 - Tq / MdMax >= GBX.gs_TorqueResv / 100 Then + Exit For + ElseIf nU > nUup And Gear < GBX.GearCount Then + Return Gear + 1 + End If + + Next + + Else + + 'Calculate Start Gear + For Gear = GBX.GearCount To 1 Step -1 + + 'rpm at StartSpeed [m/s] + nU = GBX.gs_StartSpeed * 60.0 * GBX.Igetr(0) * GBX.Igetr(Gear) / (2 * VEH.rdyn * Math.PI / 1000) + + 'full load + Pmax = FLD(Gear).Pfull(nU) + + 'Max torque + MdMax = Pmax * 1000 / (nU * 2 * Math.PI / 60) + + 'power demand + Pe = Math.Min(fPeGearMod(Gear, t, GBX.gs_StartSpeed, GBX.gs_StartAcc, Grad), Pmax) + Pe = Math.Max(Pe, FLD(Gear).Pdrag(nU)) + + 'torque demand + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + + 'Up/Downshift rpms + nUup = GBX.Shiftpolygons(Gear).fGSnUup(Tq) + nUdown = GBX.Shiftpolygons(Gear).fGSnUdown(Tq) + + If nU > nUdown And nU >= ENG.Nidle And (1 - Tq / MdMax >= GBX.gs_TorqueResvStart / 100 Or Tq < 0) Then Exit For + + Next + + End If + + Return Gear + + + End Function + + Private Function fGearTC(ByVal t As Int16, ByVal Grad As Single) As Integer + Dim LastGear As Int16 + Dim tx As Int16 + Dim nU As Single + Dim nUup As Single + Dim nUdown As Single + Dim Tq As Single + Dim LastPe As Single + Dim nUnext As Single + Dim OutOfRpmRange As Boolean + Dim PlusGearLockUp As Boolean + Dim MinusGearTC As Boolean + Dim iRatio As Single + + 'First time step (for vehicles with TC always the first gear is used) + If t = 0 Then Return fStartGear(0, Grad) + + If MODdata.VehState(t - 1) = tVehState.Stopped Then Return 1 + + 'Previous Gear + tx = 1 + LastGear = 0 + Do While LastGear = 0 And t - tx > -1 + LastGear = MODdata.Gear(t - tx) + tx += 1 + Loop + + 'If idling (but no vehicle stop...?) then + If LastGear = 0 Then Return 1 + + If LastGear < GBX.GearCount Then + PlusGearLockUp = Not GBX.IsTCgear(LastGear + 1) + Else + PlusGearLockUp = False + End If + + If LastGear > 1 Then + MinusGearTC = GBX.IsTCgear(LastGear - 1) + Else + MinusGearTC = False + End If + + 'Rpm + nU = MODdata.nU(t - 1) + + If LastGear < GBX.GearCount AndAlso Not GBX.IsTCgear(LastGear + 1) Then + nUnext = Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear + 1) / (2 * VEH.rdyn * Math.PI / 1000) + Else + nUnext = 0 + End If + + OutOfRpmRange = (nU >= 1.2 * (ENG.Nrated - ENG.Nidle) + ENG.Nidle) + + '2C-to-1C + If MinusGearTC Then + If fnUout(Vact, LastGear) <= ENG.Nidle Then + Return LastGear - 1 + End If + End If + + 'No gear change 3s after last one -except rpm out of range + If Not PlusGearLockUp Then + If Not OutOfRpmRange AndAlso t - LastGearChange <= GBX.gs_ShiftTime And t > GBX.gs_ShiftTime - 1 Then Return LastGear + End If + + 'previous power demand + LastPe = MODdata.Pe(t - 1) + + 'previous torque demand + Tq = LastPe * 1000 / (nU * 2 * Math.PI / 60) + + 'Up/Downshift rpms + nUup = GBX.Shiftpolygons(LastGear).fGSnUup(Tq) + nUdown = GBX.Shiftpolygons(LastGear).fGSnUdown(Tq) + + 'Upshift + If PlusGearLockUp Then + If nUnext > nUup AndAlso LastPe <= FLD(LastGear + 1).Pfull(nUnext) Then + Return LastGear + 1 + End If + Else + '1C-to-2C + If LastGear < GBX.GearCount Then + + iRatio = GBX.Igetr(LastGear + 1) / GBX.Igetr(LastGear) + + If fnUout(Vact, LastGear + 1) > Math.Min(900, iRatio * (FLD(LastGear).N95h - 150)) AndAlso FLD(LastGear + 1).Pfull(nU * iRatio, LastPe) > 0.7 * FLD(LastGear).Pfull(nU, LastPe) Then + Return LastGear + 1 + End If + End If + End If + + + 'Downshift + If MinusGearTC Then + If nU < ENG.Nidle Then + Return LastGear - 1 + End If + Else + If nU < nUdown Then + Return LastGear - 1 + End If + End If + + + + Return LastGear + + End Function + + Private Function fGearVECTO(ByVal t As Integer, ByVal Grad As Single) As Integer + Dim nU As Single + Dim nnUp As Single + Dim nnDown As Single + Dim Tq As Single + Dim Pe As Single + Dim LastGear As Int16 + Dim Gear As Int16 + Dim MdMax As Single + Dim LastPeNorm As Single + + Dim tx As Int16 + Dim OutOfRpmRange As Boolean + + 'First time step OR first time step after stand still + If t = 0 OrElse MODdata.VehState(t - 1) = tVehState.Stopped Then Return fStartGear(t, Grad) + + + '********* Gear Shift Polygon Model ********* + + 'Previous normalized engine power + LastPeNorm = MODdata.Pe(t - 1) + + 'Previous Gear + tx = 1 + LastGear = 0 + Do While LastGear = 0 And t - tx > -1 + LastGear = MODdata.Gear(t - tx) + tx += 1 + Loop + + nU = CSng(Vact * 60.0 * GBX.Igetr(0) * GBX.Igetr(LastGear) / (2 * VEH.rdyn * Math.PI / 1000)) + + OutOfRpmRange = ((nU - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) >= 1.2 Or nU < ENG.Nidle) + + 'No gear change 3s after last one -except rpm out of range + If Not OutOfRpmRange AndAlso t - LastGearChange <= GBX.gs_ShiftTime And t > GBX.gs_ShiftTime - 1 Then Return LastGear + + 'During start (clutch slipping) no gear shift + If LastClutch = tEngClutch.Slipping And VehState0 = tVehState.Acc Then Return LastGear + + ''Search for last Gear-change + 'itgangw = 0 + 'For i = t - 1 To 1 Step -1 + ' If MODdata.Gear(i) <> MODdata.Gear(i - 1) Then + ' itgangw = i + ' Exit For + ' End If + 'Next + + ''Maximum permissible Gear-shifts every 3 seconds: + 'If t - itgangw <= 3 And t > 2 Then + ' Return LastGear '<<< no further checks!!! + 'End If + + 'Current rpm with previous gear + nU = fnU(Vact, LastGear, Clutch = tEngClutch.Slipping) + + 'Current power demand with previous gear + Pe = Math.Min(fPeGearMod(LastGear, t, Grad), FLD(LastGear).Pfull(nU)) + Pe = Math.Max(Pe, FLD(LastGear).Pdrag(nU)) + + 'Current torque demand with previous gear + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + MdMax = FLD(LastGear).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + + 'Up/Downshift rpms + nnUp = GBX.Shiftpolygons(LastGear).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(LastGear).fGSnUdown(Tq) + + 'Compare rpm with Up/Downshift rpms + If nU <= nnDown And LastGear > 1 Then + + 'Shift DOWN + Gear = LastGear - 1 + + 'Skip Gears + If GBX.gs_SkipGears AndAlso Gear > 1 Then + + 'Calculate Shift-rpm for lower gear + nU = fnU(Vact, Gear - 1, False) + + 'Continue only if rpm (for lower gear) is above idling + If nU >= ENG.Nidle Then + Pe = Math.Min(fPeGearMod(Gear - 1, t, Grad), FLD(Gear - 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear - 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear - 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear - 1).fGSnUdown(Tq) + + 'Shift down as long as Gear > 1 and rpm is below UpShift-rpm + Do While Gear > 1 AndAlso nU < nnUp + + 'Shift DOWN + Gear -= 1 + + 'Continue only if Gear > 1 + If Gear = 1 Then Exit Do + + 'Calculate Shift-rpm for lower gear + nU = fnU(Vact, Gear - 1, False) + + 'Continue only if rpm (for lower gear) is above idling + If nU < ENG.Nidle Then Exit Do + + Pe = Math.Min(fPeGearMod(Gear - 1, t, Grad), FLD(Gear - 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear - 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear - 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear - 1).fGSnUdown(Tq) + + Loop + + End If + + End If + + ElseIf LastGear < GBX.GearCount And nU > nnUp Then + + 'Shift UP + Gear = LastGear + 1 + + 'Skip Gears + If GBX.gs_SkipGears AndAlso Gear < GBX.GearCount Then + + If GBX.TracIntrSi > 0.001 Then + LastPeNorm = fTracIntPower(t, Gear) + End If + + 'Calculate Shift-rpm for higher gear + nU = fnU(Vact, Gear + 1, False) + + Pe = Math.Min(fPeGearMod(Gear + 1, t, Grad), FLD(Gear + 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear + 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear + 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear + 1).fGSnUdown(Tq) + + 'Max Torque + MdMax = FLD(Gear + 1).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + + 'Shift up as long as Torque reserve is okay and Gear < Max-Gear and rpm is above DownShift-rpm + Do While Gear < GBX.GearCount AndAlso 1 - Tq / MdMax >= GBX.gs_TorqueResv / 100 AndAlso nU > nnDown '+ 0.1 * (nnUp - nnDown) + + 'Shift UP + Gear += 1 + + 'Continue only if Gear < Max-Gear + If Gear = GBX.GearCount Then Exit Do + + 'Calculate Shift-rpm for higher gear + nU = fnU(Vact, Gear + 1, False) + + 'Continue only if rpm (for higher gear) is below rated rpm + If nU > ENG.Nrated Then Exit Do + + Pe = Math.Min(fPeGearMod(Gear + 1, t, Grad), FLD(Gear + 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear + 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear + 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear + 1).fGSnUdown(Tq) + + 'Max Torque + MdMax = FLD(Gear + 1).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + + Loop + + End If + + Else + + 'Keep last gear + Gear = LastGear + + 'Shift UP inside shift polygons + If GBX.gs_ShiftInside And LastGear < GBX.GearCount Then + + 'Calculate Shift-rpm for higher gear + nU = fnU(Vact, Gear + 1, False) + + 'Continue only if rpm (for higher gear) is below rated rpm + If nU <= ENG.Nrated Then + Pe = Math.Min(fPeGearMod(Gear + 1, t, Grad), FLD(Gear + 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear + 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear + 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear + 1).fGSnUdown(Tq) + + 'Max Torque + MdMax = FLD(Gear + 1).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + + 'Shift up as long as Torque reserve is okay and Gear < Max-Gear and rpm is above DownShift-rpm + Do While Gear < GBX.GearCount AndAlso 1 - Tq / MdMax >= GBX.gs_TorqueResv / 100 AndAlso nU > nnDown '+ 0.1 * (nnUp - nnDown) + + 'Shift UP + Gear += 1 + + 'Continue only if Gear < Max-Gear + If Gear = GBX.GearCount Then Exit Do + + 'Calculate Shift-rpm for higher gear + nU = fnU(Vact, Gear + 1, False) + + 'Continue only if rpm (for higher gear) is below rated rpm + If nU > ENG.Nrated Then Exit Do + + Pe = Math.Min(fPeGearMod(Gear + 1, t, Grad), FLD(Gear + 1).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear + 1).Pdrag(nU)) + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + nnUp = GBX.Shiftpolygons(Gear + 1).fGSnUup(Tq) + nnDown = GBX.Shiftpolygons(Gear + 1).fGSnUdown(Tq) + + 'Max Torque + MdMax = FLD(Gear + 1).Pfull(nU, LastPeNorm) * 1000 / (nU * 2 * Math.PI / 60) + + Loop + + + End If + + End If + + End If + +lb10: + '*** Error-Msg-Check *** + 'Current rpm + nU = fnU(Vact, Gear, Clutch = tEngClutch.Slipping) + 'Current power demand + Pe = Math.Min(fPeGearMod(Gear, t, Grad), FLD(Gear).Pfull(nU)) + Pe = Math.Max(Pe, FLD(Gear).Pdrag(nU)) + 'Current torque demand + Tq = Pe * 1000 / (nU * 2 * Math.PI / 60) + + 'If GearCorrection is OFF then return here + Return Gear + + End Function + + Private Function fGearByU(ByVal nU As Single, ByVal V As Single) As Integer + Dim Dif As Single + Dim DifMin As Single + Dim g As Int16 + Dim g0 As Integer + DifMin = 9999 + For g = 1 To GBX.GearCount + Dif = Math.Abs(GBX.Igetr(g) - nU * (2 * VEH.rdyn * Math.PI) / (1000 * V * 60.0 * GBX.Igetr(0))) + If Dif <= DifMin Then + g0 = g + DifMin = Dif + End If + Next + Return g0 + End Function + + 'Function calculating the Power easily for Gear-shift-model + Private Function fPeGearModvD(ByVal t As Integer, ByVal Grad As Single) As Single + Return fPwheel(t, Grad) + End Function + + Private Function fPeGearMod(ByVal Gear As Integer, ByVal t As Integer, ByVal V As Single, ByVal a As Single, ByVal Grad As Single) As Single + Dim PaM As Single + Dim nU As Single + Dim Pwheel As Single + + Pwheel = fPwheel(t, V, a, Grad) + + nU = fnU(V, Gear, False) + + If t = 0 Then + PaM = 0 + Else + PaM = fPaMot(nU, MODdata.nU(t - 1)) + End If + + + If Clutch = tEngClutch.Closed Then + Return (Pwheel + fPlossGB(Pwheel, V, Gear, True) + fPlossDiff(Pwheel, V, True) + fPaG(V, a) + fPaux(t, nU) + PaM) + Else 'Clutch = tEngClutch.Slipping + Return ((Pwheel + fPlossGB(Pwheel, V, Gear, True) + fPlossDiff(Pwheel, V, True) + fPaG(V, a)) / ClutchEta + fPaux(t, nU) + PaM) + End If + + End Function + + Private Function fPeGearMod(ByVal Gear As Integer, ByVal t As Integer, ByVal Grad As Single) As Single + Return fPeGearMod(Gear, t, MODdata.Vh.V(t), MODdata.Vh.a(t), Grad) + End Function + + +#End Region + +#Region "Engine Speed Calculation" + + Private Function fnn(ByVal V As Single, ByVal Gear As Integer, ByVal ClutchSlip As Boolean) As Single + Return (fnU(V, Gear, ClutchSlip) - ENG.Nidle) / (ENG.Nrated - ENG.Nidle) + End Function + + Private Function fnU(ByVal V As Single, ByVal Gear As Integer, ByVal ClutchSlip As Boolean) As Single + Dim akn As Single + Dim U As Single + U = CSng(V * 60.0 * GBX.Igetr(0) * GBX.Igetr(Gear) / (2 * VEH.rdyn * Math.PI / 1000)) + If U < ENG.Nidle Then U = ENG.Nidle + If ClutchSlip Then + akn = ClutchNorm / ((ENG.Nidle + ClutchNorm * (ENG.Nrated - ENG.Nidle)) / ENG.Nrated) + U = (akn * U / ENG.Nrated) * (ENG.Nrated - ENG.Nidle) + ENG.Nidle + End If + Return U + End Function + + Private Function fnUout(ByVal V As Single, ByVal Gear As Integer) As Single + Return V * 60.0 * GBX.Igetr(0) * GBX.Igetr(Gear) / (2 * VEH.rdyn * Math.PI / 1000) + End Function + +#End Region + +#Region "Power Calculation" + + '--------------Power before Diff = At Wheel ------------- + Private Function fPwheel(ByVal t As Integer, ByVal Grad As Single) As Single + Return fPr(MODdata.Vh.V(t), Grad) + fPair(MODdata.Vh.V(t), t) + fPaFZ(MODdata.Vh.V(t), MODdata.Vh.a(t)) + fPs(MODdata.Vh.V(t), Grad) + End Function + + Private Function fPwheel(ByVal t As Integer, ByVal v As Single, ByVal a As Single, ByVal Grad As Single) As Single + Return fPr(v, Grad) + fPair(v, t) + fPaFZ(v, a) + fPs(v, Grad) + End Function + + '----------------Rolling-resistance---------------- + Private Function fPr(ByVal v As Single, ByVal Grad As Single) As Single + Return CSng(Math.Cos(Math.Atan(Grad * 0.01)) * (VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * VEH.Fr0 * v * 0.001) + End Function + + '----------------Drag-resistance---------------- + Private Function fPair(ByVal v As Single, ByVal t As Integer) As Single + Dim vair As Single + Dim Cd As Single + + Select Case VEH.CdMode + + Case tCdMode.ConstCd0 + vair = v + Cd = VEH.Cd + + Case tCdMode.CdOfV + vair = v + Cd = VEH.Cd(v) + + Case Else 'tCdType.CdOfBeta + vair = MODdata.Vh.VairVres(t) + Cd = VEH.Cd(Math.Abs(MODdata.Vh.VairBeta(t))) + + End Select + + Return CSng((Cd * VEH.CrossSecArea * Cfg.AirDensity / 2 * ((vair) ^ 2)) * v * 0.001) + + End Function + + '--------Vehicle Acceleration-capability(Beschleunigungsleistung) -------- + Private Function fPaFZ(ByVal v As Single, ByVal a As Single) As Single + Return CSng(((VEH.Mass + VEH.MassExtra + VEH.m_red + VEH.Loading) * a * v) * 0.001) + End Function + + Private Function fPaMotSimple(ByVal t As Integer, ByVal Gear As Integer, ByVal v As Single, ByVal a As Single) As Single + Return ((ENG.I_mot * (GBX.Igetr(0) * GBX.Igetr(Gear) / (VEH.rdyn / 1000)) ^ 2) * a * v) * 0.001 + End Function + + Public Function fPaMot(ByVal nU As Single, ByVal nUBefore As Single) As Single + If GBX.TCon Then + Return ((ENG.I_mot + GBX.TCinertia) * (nU - nUBefore) * 0.01096 * nU) * 0.001 + Else + Return (ENG.I_mot * (nU - nUBefore) * 0.01096 * nU) * 0.001 + End If + End Function + + '----------------Slope resistance ---------------- + Private Function fPs(ByVal v As Single, ByVal Grad As Single) As Single + Return CSng(((VEH.Loading + VEH.Mass + VEH.MassExtra) * 9.81 * Math.Sin(Math.Atan(Grad * 0.01)) * v) * 0.001) + End Function + + '----------------Ancillaries(Nebenaggregate) ---------------- + Public Function fPaux(ByVal t As Integer, ByVal nU As Single) As Single + Return CSng(MODdata.Vh.Padd(t) + VEC.PauxSum(t, nU)) + End Function + + '-------------------Transmission(Getriebe)------------------- + Private Function fPlossGB(ByVal PvD As Single, ByVal V As Single, ByVal Gear As Integer, ByVal TrLossApprox As Boolean) As Single + Dim Pdiff As Single + Dim Prt As Single + Dim P As Single + Dim nU As Single + + If Gear = 0 Then Return 0 + + nU = (60 * V) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0) * GBX.Igetr(Gear) + + 'Pdiff + Pdiff = fPlossDiff(PvD, V, TrLossApprox) + + If VEH.RtType = tRtType.Secondary Then + Prt = fPlossRt(V, Gear) + Else + Prt = 0 + End If + + '***Differential + ' Power before Transmission; after Differential and Retarder (if Type=Secondary) + P = PvD + Pdiff + Prt + + Return Math.Max(GBX.IntpolPeLoss(Gear, nU, P, TrLossApprox), 0) + + + End Function + + Private Function fPlossDiff(ByVal PvD As Single, ByVal V As Single, ByVal TrLossApprox As Boolean) As Single + + '***Differential + ' Power before Differential + Return Math.Max(GBX.IntpolPeLoss(0, (60 * V) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0), PvD, TrLossApprox), 0) + + End Function + + Private Function fPlossGBfwd(ByVal PeICE As Single, ByVal V As Single, ByVal Gear As Integer, ByVal TrLossApprox As Boolean) As Single + Dim nU As Single + Dim Prt As Single + + If Gear = 0 Then Return 0 + + If VEH.RtType = tRtType.Primary Then + Prt = fPlossRt(V, Gear) + Else + Prt = 0 + End If + + nU = (60 * V) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0) * GBX.Igetr(Gear) + + Return Math.Max(GBX.IntpolPeLossFwd(Gear, nU, PeICE + Prt, TrLossApprox), 0) + + End Function + + Private Function fPlossDiffFwd(ByVal PeIn As Single, ByVal V As Single, ByVal TrLossApprox As Boolean) As Single + Dim nU As Single + + nU = (60 * V) / (2 * VEH.rdyn * Math.PI / 1000) * GBX.Igetr(0) + + Return Math.Max(GBX.IntpolPeLossFwd(0, nU, PeIn, TrLossApprox), 0) + + End Function + + Private Function fPlossRt(ByVal Vist As Single, ByVal Gear As Integer) As Single + Return VEH.RtPeLoss(Vist, Gear) + End Function + + '----------------Gearbox inertia ---------------- + Private Function fPaG(ByVal V As Single, ByVal a As Single) As Single + Dim Mred As Single + Mred = GBX.GbxInertia * (GBX.Igetr(0) / (VEH.rdyn / 1000)) ^ 2 + Return (Mred * a * V) * 0.001 + End Function + +#End Region + + +End Class + diff --git a/VECTO/MODcalc/cVh.vb b/VECTO/MODcalc/cVh.vb new file mode 100644 index 0000000000000000000000000000000000000000..2e72e1be26a12d44b680673cb432dfff2be155dc --- /dev/null +++ b/VECTO/MODcalc/cVh.vb @@ -0,0 +1,674 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cVh + + 'From DRI file + Private lV As List(Of Single) 'Ist-Geschw. in Zwischensekunden. + Private lV0ogl As List(Of Single) 'Original DRI-Geschwindigkeit. Wird nicht geändert. + Private lV0 As List(Of Single) 'DRI-Geschwindigkeit. Bei Geschw.-Reduktion in Zeitschritt t wird LV0(t+1) reduziert. + Private lGears As List(Of Short) + Private lPadd As List(Of Single) + Private lVairVres As List(Of Single) + Private lVairBeta As List(Of Single) + Public EcoRoll As List(Of Boolean) + + 'Calculated + Private la As List(Of Single) + + 'WegKor |@@| Route(Weg)Correct + Private dWegIst As Double + Public Weg As List(Of Double) + Private WegX As Integer + Private WegV As List(Of Single) + + Public NoDistCorr As List(Of Boolean) + + Private lAlt0 As List(Of Double) + Private ls0 As List(Of Single) + Private iAlt As Integer + Private iAltDim As Integer + + Public Sub Init() + lV = New List(Of Single) + lV0ogl = New List(Of Single) + lV0 = New List(Of Single) + lAlt0 = New List(Of Double) + ls0 = New List(Of Single) + lGears = New List(Of Short) + lPadd = New List(Of Single) + la = New List(Of Single) + Weg = New List(Of Double) + lVairVres = New List(Of Single) + lVairBeta = New List(Of Single) + EcoRoll = New List(Of Boolean) + NoDistCorr = New List(Of Boolean) + iAlt = 1 + iAltDim = 0 + End Sub + + Public Sub CleanUp() + lV = Nothing + lV0ogl = Nothing + lV0 = Nothing + lAlt0 = Nothing + ls0 = Nothing + lGears = Nothing + lPadd = Nothing + la = Nothing + Weg = Nothing + lVairVres = Nothing + lVairBeta = Nothing + EcoRoll = Nothing + NoDistCorr = Nothing + End Sub + + Public Sub VehCylceInit() + + Dim s As Integer + Dim sl As Integer + Dim L As List(Of Double) + Dim Val As Single + + 'Speed + If DRI.Vvorg Then + + L = DRI.Values(tDriComp.V) + For s = 0 To MODdata.tDim + lV0.Add(L(s)) + If Not DRI.Scycle Then lV0ogl.Add(L(s)) + lV.Add((L(s + 1) + L(s)) / 2) + If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg + Next + + 'Original-speed is longer by 1 + lV0.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) + If DRI.Scycle Then + For s = 0 To MODdata.tDim + 1 + lV0ogl.Add(CSng(DRI.VoglS(s))) + Next + Else + lV0ogl.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) + End If + + 'Strecke (aus Zwischensekunden sonst passiert Fehler) |@@| Segment (from Intermediate-seconds, otherwise Error) + If Not DRI.Scycle Then + Weg.Add(lV(0)) + For s = 1 To MODdata.tDim + Weg.Add(Weg(s - 1) + lV(s)) + Next + End If + + End If + + 'Altitude / distance + If Not DRI.Scycle Then + L = DRI.Values(tDriComp.Alt) + lAlt0.Add(0) + ls0.Add(lV0(0)) + sl = 0 + For s = 1 To MODdata.tDim + 1 + If lV0(s) > 0 Then + sl += 1 + ls0.Add(ls0(sl - 1) + lV0(s)) + lAlt0.Add(L(s)) + End If + Next + iAltDim = ls0.Count - 1 + End If + + + + 'Gear - but not Averaged, rather Gang(t) = DRI.Gear(t) + If DRI.Gvorg Then + L = DRI.Values(tDriComp.Gears) + For s = 0 To MODdata.tDim + 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) + lGears.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lGears.Add(-1) + Next + End If + + 'Padd + If DRI.PaddVorg Then + L = DRI.Values(tDriComp.Padd) + For s = 0 To MODdata.tDim + lPadd.Add((L(s + 1) + L(s)) / 2) + Next + Else + For s = 0 To MODdata.tDim + lPadd.Add(0) + Next + End If + + 'Calculate Acceleration + If DRI.Vvorg Then + L = DRI.Values(tDriComp.V) + For s = 0 To MODdata.tDim + la.Add(L(s + 1) - L(s)) + Next + End If + + 'Vair specifications: Not in Intermediate-seconds! + If DRI.VairVorg Then + + L = DRI.Values(tDriComp.VairVres) + For s = 0 To MODdata.tDim + lVairVres.Add(L(s) / 3.6) + Next + + L = DRI.Values(tDriComp.VairBeta) + For s = 0 To MODdata.tDim + Val = Math.Abs(L(s)) + If Val > 180 Then Val -= 360 + lVairBeta.Add(Val) + Next + + End If + + For s = 0 To MODdata.tDim + EcoRoll.Add(False) + NoDistCorr.Add(False) + Next + + + End Sub + + Public Sub EngCylceInit() + + Dim s As Integer + Dim L As List(Of Double) + + 'Speed + If DRI.Vvorg Then + + L = DRI.Values(tDriComp.V) + + For s = 0 To MODdata.tDim + lV0.Add(L(s)) + lV0ogl.Add(L(s)) + lV.Add(L(s)) + If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg + Next + + 'Distance + Weg.Add(lV(0)) + For s = 1 To MODdata.tDim + Weg.Add(Weg(s - 1) + lV(s)) + Next + + End If + + 'Gear - not Averaged, rather Gear(t) = DRI.Gear(t) + If DRI.Gvorg Then + L = DRI.Values(tDriComp.Gears) + For s = 0 To MODdata.tDim + 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) + lGears.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lGears.Add(-1) + Next + End If + + 'Padd + If DRI.PaddVorg Then + L = DRI.Values(tDriComp.Padd) + For s = 0 To MODdata.tDim + lPadd.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lPadd.Add(0) + Next + End If + + 'Calculate Acceleration + If DRI.Vvorg Then + la.Add(DRI.Values(tDriComp.V)(1) - DRI.Values(tDriComp.V)(0)) + For s = 1 To MODdata.tDim - 1 + la.Add((DRI.Values(tDriComp.V)(s + 1) - DRI.Values(tDriComp.V)(s - 1)) / 2) + Next + la.Add(DRI.Values(tDriComp.V)(MODdata.tDim) - DRI.Values(tDriComp.V)(MODdata.tDim - 1)) + End If + + End Sub + + Public Sub SetSpeed0(ByVal t As Integer, ByVal v0 As Single) + lV0(t + 1) = v0 + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + Public Sub SetSpeed(ByVal t As Integer, ByVal v As Single) + + If 2 * v - lV0(t) < 0 Then v = lV0(t) / 2 + + lV0(t + 1) = 2 * v - lV0(t) + lV(t) = v + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + Public Sub ReduceSpeed(ByVal t As Integer, ByVal p As Single) + lV0(t + 1) *= p + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + + Public Sub SetMaxAcc(ByVal t As Integer) + Dim a As Single + Dim v As Single + Dim v0plus As Single + Dim a0 As Single + + v0plus = lV0(t + 1) + + v = (v0plus + lV0(t)) / 2 + a0 = VEC.aDesMax(v) + + v0plus = lV0(t) + a + v = (v0plus + lV0(t)) / 2 + a = VEC.aDesMax(v) + + Do While Math.Abs(a - a0) > 0.0001 + + a0 = a + + v0plus = lV0(t) + a + v = (v0plus + lV0(t)) / 2 + a = VEC.aDesMax(v) + + Loop + + la(t) = a + lV0(t + 1) = lV0(t) + a + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + + Public Sub SetMinAccBackw(ByVal t As Integer) + Dim a As Single + Dim v As Single + Dim v0 As Single + Dim a0 As Single + + v0 = lV0(t) + + v = (lV0(t + 1) + v0) / 2 + a0 = VEC.aDesMin(v) + + v0 = lV0(t + 1) - a + v = (lV0(t + 1) + v0) / 2 + a = VEC.aDesMin(v) + + Do While Math.Abs(a - a0) > 0.0001 + + a0 = a + + v0 = lV0(t + 1) - a + v = (lV0(t + 1) + v0) / 2 + a = VEC.aDesMin(v) + + Loop + + la(t) = a + lV0(t) = lV0(t + 1) - a + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + If t > 0 Then + lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 + la(t - 1) = lV0(t) - lV0(t - 1) + End If + End Sub + + Public Sub DistCorrInit() + Dim i As Int16 + + WegX = 0 + dWegIst = 0 + + WegV = New List(Of Single) + + For i = 0 To MODdata.tDim + 1 + WegV.Add(lV0(i)) + Next + + End Sub + + Public Function DistCorrection(ByVal t As Integer, ByVal VehState As tVehState) As Boolean + Dim v As Single + + v = lV(t) + dWegIst += v + + If Not Cfg.DistCorr Then Return False + + If t + 1 > MODdata.tDim Then Return False + + + If WegX + 2 < MODdata.tDimOgl Then + + 'If repeating of current time-step is closer to the target distance => Repeat time-step + If Not NoDistCorr(t) AndAlso (Math.Abs(dWegIst + Vsoll(t) - Weg(WegX)) < Math.Abs(dWegIst - Weg(WegX))) And v > 1 Then + + Duplicate(t + 1) + MODdata.tDim += 1 + 'Debug.Print("Duplicate," & t & "," & WegIst & "," & Weg(WegX)) + NoDistCorr(t + 1) = True + Return True + + 'If deleting the next time-step is closer to target distance => Delete Next Time-step + ElseIf Not NoDistCorr(t) AndAlso WegX < MODdata.tDimOgl - 1 AndAlso t < MODdata.tDim - 1 AndAlso Math.Abs(dWegIst - Weg(WegX + 1)) <= Math.Abs(dWegIst - Weg(WegX)) AndAlso v > 1 Then + + Cut(t + 1) + MODdata.tDim -= 1 + 'Debug.Print("Cut," & t & "," & WegIst & "," & Weg(WegX)) + NoDistCorr(t + 1) = True + WegX += 2 + Return True + + Else + + 'No correction + WegX += 1 + Return False + + End If + + End If + + Return False + + End Function + + Private Sub Duplicate(ByVal t As Integer) + + lV0.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) + WegV.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) + + 'If t + 1 < MODdata.tDim Then + ' lV0.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) + ' WegV.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) + 'Else + ' lV0.Insert(t + 1, WegV(t + 1)) + ' WegV.Insert(t + 1, WegV(t + 1)) + 'End If + + lV0ogl.Insert(t + 1, lV0ogl(t + 1)) + lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) + la.Insert(t, lV0(t + 1) - lV0(t)) + + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + + lGears.Insert(t, lGears(t)) + lPadd.Insert(t, lPadd(t)) + EcoRoll.Insert(t, EcoRoll(t)) + NoDistCorr.Insert(t, NoDistCorr(t)) + + If DRI.VairVorg Then + lVairVres.Insert(t, lVairVres(t)) + lVairBeta.Insert(t, lVairBeta(t)) + End If + + MODdata.Px.Positions.Insert(t, MODdata.Px.Positions(t)) + + MODdata.Duplicate(t) + + + End Sub + + Public Sub DuplicatePreRun(ByVal t As Integer) + + lV0.Insert(t, lV0(t)) + + lV0ogl.Insert(t, lV0ogl(t)) + lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) + la.Insert(t, lV0(t + 1) - lV0(t)) + + If t > 0 Then + lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 + la(t - 1) = lV0(t) - lV0(t - 1) + End If + + lGears.Insert(t, lGears(t)) + lPadd.Insert(t, lPadd(t)) + EcoRoll.Insert(t, EcoRoll(t)) + NoDistCorr.Insert(t, NoDistCorr(t)) + + If DRI.VairVorg Then + lVairVres.Insert(t, lVairVres(t)) + lVairBeta.Insert(t, lVairBeta(t)) + End If + + MODdata.Duplicate(t) + + End Sub + + Private Sub Cut(ByVal t As Integer) + + lV0.RemoveAt(t + 1) + lV0ogl.RemoveAt(t + 1) + WegV.RemoveAt(t + 1) + lV.RemoveAt(t) + la.RemoveAt(t) + + If t < MODdata.tDim Then + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + End If + + If t < MODdata.tDim - 1 Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + + lGears.RemoveAt(t) + lPadd.RemoveAt(t) + EcoRoll.RemoveAt(t) + NoDistCorr.RemoveAt(t) + + If DRI.VairVorg Then + lVairVres.RemoveAt(t) + lVairBeta.RemoveAt(t) + End If + + MODdata.Px.Positions.RemoveAt(t) + + + MODdata.Cut(t) + + End Sub + + Public ReadOnly Property Vsoll(ByVal t As Integer) As Single + Get + Return (lV0ogl(t + 1) + lV0ogl(t)) / 2 + End Get + End Property + + Public ReadOnly Property V(ByVal t As Integer) As Single + Get + Return lV(t) + End Get + End Property + + Public ReadOnly Property V0(ByVal t As Integer) As Single + Get + Return lV0(t) + End Get + End Property + + Public ReadOnly Property GearVorg(ByVal t As Integer) As Short + Get + Return lGears(t) + End Get + End Property + + + Public Sub SetAlt() + Dim Ls As List(Of Double) + Dim Lalt As List(Of Double) + Dim sl As Integer + Dim s As Integer + + 'Altitude / distance + Ls = DRI.Values(tDriComp.s) + Lalt = DRI.Values(tDriComp.Alt) + + lAlt0.Add(Lalt(0)) + ls0.Add(Ls(0)) + + sl = 0 + For s = 1 To DRI.tDim + If Ls(s) > ls0(sl) Then + sl += 1 + ls0.Add(Ls(s)) + lAlt0.Add(Lalt(s)) + End If + Next + iAltDim = ls0.Count - 1 + + End Sub + + Public Function fGrad(ByVal s As Double) As Single + Dim i As Int32 + Dim dh As Single + Dim ds As Single + + If ls0(0) >= s Then + i = 1 + GoTo lbInt + End If + + i = iAlt + + If ls0(i - 1) > s Then + + Do While ls0(i - 1) > s And i > 1 + i -= 1 + Loop + + Else + + Do While ls0(i) < s And i < iAltDim + i += 1 + Loop + + End If + + +lbInt: + iAlt = i + + ds = ls0(i) - ls0(i - 1) + dh = lAlt0(i) - lAlt0(i - 1) + Return (dh / ds) * 100 + + End Function + + 'IndexInit = 0 ...Set iAlt to 1 + 'IndexInit = 0 ...Set iAlt + 'IndexInit > 0 ...Use IndexStart + Public Function AltIntp(ByVal s As Single, ByVal iAltReset As Boolean) As Single + Dim i As Int32 + + If ls0(0) >= s Then + i = 1 + GoTo lbInt + End If + + If iAltReset Then iAlt = 1 + + i = iAlt + + If ls0(i - 1) > s Then + + Do While ls0(i - 1) > s And i > 1 + i -= 1 + Loop + + Else + + Do While ls0(i) < s And i < iAltDim + i += 1 + Loop + + End If + +lbInt: + iAlt = i + + Return (s - ls0(i - 1)) * (lAlt0(i) - lAlt0(i - 1)) / (ls0(i) - ls0(i - 1)) + lAlt0(i - 1) + + End Function + + + Public ReadOnly Property Padd(ByVal t As Integer) As Single + Get + Return lPadd(t) + End Get + End Property + + Public ReadOnly Property a(ByVal t As Integer) As Single + Get + Return la(t) + End Get + End Property + + Public ReadOnly Property VairVres(ByVal t As Integer) As Single + Get + Return lVairVres(t) + End Get + End Property + + Public ReadOnly Property VairBeta(ByVal t As Integer) As Single + Get + Return lVairBeta(t) + End Get + End Property + + Public ReadOnly Property WegIst As Double + Get + Return dWegIst + End Get + End Property + + Public ReadOnly Property WegSoll As Double + Get + Return Weg(WegX) + End Get + End Property + + +End Class diff --git a/VECTO/M_MAIN.vb b/VECTO/M_MAIN.vb new file mode 100644 index 0000000000000000000000000000000000000000..4754c2f75383a858f42fd400eb6c2e5ccc95531f --- /dev/null +++ b/VECTO/M_MAIN.vb @@ -0,0 +1,811 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +''' <summary> +''' Main calculation routines. +''' </summary> +''' <remarks></remarks> +Module M_MAIN + + Public JobFileList As List(Of String) + Public JobCycleList As List(Of String) + + Public JobFile As String + Public CycleFiles As New List(Of String) + Public CurrentCycleFile As String + + Private iJob As Integer + Private iCycle As Integer + Private CyclesDim As Integer + Private FilesDim As Integer + Private jsubcycle As Integer + Private jsubcycleDim As Integer + + Private SigFile As String + + ''' <summary> + ''' Main calculation routine. Launched by VECTOworker via Mainform's Start button or command line + ''' </summary> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function VECTO() As tCalcResult + + Dim MsgStrBuilder As System.Text.StringBuilder + + Dim i As Integer + Dim path0 As String + Dim JobAbortedByErr As Boolean + Dim CyclAbrtedByErr As Boolean + Dim MsgOut As Boolean + Dim MsgSrc As String + Dim loading As tLoading + Dim LoadList As New List(Of tLoading) + Dim iLoad As Integer + Dim iLoadDim As Integer + + + + MsgSrc = "Main" + + MsgStrBuilder = New System.Text.StringBuilder + + 'If there are any "unplanned" Aborts + VECTO = tCalcResult.Err + + 'Reset the fault + ''ClearErrors() + + 'Specify Mode and Notification-msg + If Cfg.BatchMode Then + WorkerMsg(tMsgID.Normal, "Starting VECTO Batch...", MsgSrc) + CyclesDim = JobCycleList.Count - 1 + Else + WorkerMsg(tMsgID.Normal, "Starting VECTO...", MsgSrc) + CyclesDim = 0 + End If + FilesDim = JobFileList.Count - 1 + + MsgOut = Not Cfg.BatchMode + + 'License check + + If Cfg.BatchMode Then + If Not Lic.LicFeature(1) Then + WorkerMsg(tMsgID.Err, "Your license does not support Batch Mode!", MsgSrc) + GoTo lbErrBefore + End If + End If + + If FilesDim = -1 Then + WorkerMsg(tMsgID.Err, "No Job Files defined.", MsgSrc) + GoTo lbErrBefore + End If + + If CyclesDim = -1 And Cfg.BatchMode Then + WorkerMsg(tMsgID.Err, "No Driving Cycles defined.", MsgSrc) + GoTo lbErrBefore + End If + + 'Create BATCH Output-folder if necessary + If Cfg.BatchMode Then + Select Case UCase(Cfg.BATCHoutpath) + Case sKey.JobPath + GoTo lbSkip0 + Case Else + path0 = Cfg.BATCHoutpath + End Select + If Not IO.Directory.Exists(path0) Then + Try + IO.Directory.CreateDirectory(path0) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to create output directory " & path0 & " !", MsgSrc) + GoTo lbErrBefore + End Try + End If + End If +lbSkip0: + + 'MOD-Data class initialization + MODdata = New cMOD + + 'New signature file + Lic.FileSigning.NewFile() + + 'ERG-class initialization + WorkerMsg(tMsgID.Normal, "Analyzing input files", MsgSrc) + VSUM = New cVSUM + If Not VSUM.Init(JobFileList(0)) Then GoTo lbErrBefore + + SigFile = Left(VSUM.VSUMfile, VSUM.VSUMfile.Length - 5) & ".vsig" + + 'Warning on invalid/unrealistic settings + If Cfg.AirDensity > 2 Then WorkerMsg(tMsgID.Err, "Air Density = " & Cfg.AirDensity & " ?!", MsgSrc) + + If Cfg.DeclMode Then + LoadList.Add(tLoading.EmptyLoaded) + LoadList.Add(tLoading.RefLoaded) + LoadList.Add(tLoading.FullLoaded) + iLoadDim = 2 + Else + LoadList.Add(tLoading.UserDefLoaded) + iLoadDim = 0 + End If + + 'Progbar-Init + WorkerProgInit() + + '-------------------------------------------------------------------------------------------- + ' Calculation Loop for all Preset-cycles and Vehicles: + ' + '********************************************************************************************** + '**************************************** Job loop **************************************** + '********************************************************************************************** + For iJob = 0 To FilesDim + + iCycle = 0 '<= Damit NrOfRun stimmt + + + JobFile = fFileRepl(JobFileList(iJob)) + + WorkerMsg(tMsgID.NewJob, "Job: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & ((FilesDim + 1) * (CyclesDim + 1)) & " | " & fFILE(JobFile, True), MsgSrc) + WorkerStatus("Current Job: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & ((FilesDim + 1) * (CyclesDim + 1)) & " | " & fFILE(JobFile, True)) + WorkerJobStatus(iJob, "initialising... ", tJobStatus.Running) + + JobAbortedByErr = False + MSGwarn = 0 + MSGerror = 0 + + 'Check if Abort + If VECTOworker.CancellationPending Then GoTo lbAbort + + 'If error when read GEN + CurrentCycleFile = "" + + 'Reading the input files + WorkerMsg(tMsgID.Normal, "Reading input files", MsgSrc) + If Not ReadFiles() Then + JobAbortedByErr = True + GoTo lbNextJob + End If + + 'WHTC Correction + If Cfg.DeclMode Then + + 'Initialise Report + Declaration.ReportInit() + + WorkerMsg(tMsgID.Normal, "WHTC Correction", MsgSrc) + + VEC.EngOnly = True + + MODdata.Init() + + If Not Declaration.WHTCinit Then + JobAbortedByErr = True + GoTo lbNextJob + End If + + MODdata.CycleInit() + + If Not MODdata.Px.Eng_Calc(True) Then + JobAbortedByErr = True + GoTo lbNextJob + End If + + MODdata.FCcalc(False) + If MODdata.FCerror Then + WorkerMsg(tMsgID.Err, "WHTC FC calculcation failed!", MsgSrc) + JobAbortedByErr = True + GoTo lbNextJob + End If + + Declaration.WHTCcorrCalc() + + VEC.EngOnly = False + + End If + + 'BATCH: Create Output-sub-folder + If Cfg.BatchMode And Cfg.ModOut And Cfg.BATCHoutSubD Then + Select Case UCase(Cfg.BATCHoutpath) + Case sKey.JobPath + path0 = fPATH(JobFile) + Case Else + path0 = Cfg.BATCHoutpath + End Select + path0 &= fFILE(JobFile, False) & "\" + If Not IO.Directory.Exists(path0) Then + Try + IO.Directory.CreateDirectory(path0) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to create output directory " & path0 & " !", MsgSrc) + JobAbortedByErr = True + GoTo lbNextJob + End Try + End If + End If + + '********************************************************************************************** + '************************************** Cycle-loop **************************************** + '********************************************************************************************** + For iCycle = 0 To CyclesDim + + + CyclAbrtedByErr = False + + If Cfg.BatchMode Then + + 'ProgBar + ProgBarCtrl.ProgLock = True + ProgBarCtrl.ProgJobInt = 0 + ProgBarCtrl.ProgOverallStartInt = 100 * (iJob * (CyclesDim + 1) + iCycle) / ((FilesDim + 1) * (CyclesDim + 1)) + ProgBarCtrl.PgroOverallEndInt = 100 * (iJob * (CyclesDim + 1) + iCycle + 1) / ((FilesDim + 1) * (CyclesDim + 1)) + ProgBarCtrl.ProgLock = False + + + 'BATCH mode: Cycles from DRI list + CycleFiles.Clear() + CycleFiles.Add(fFileRepl(JobCycleList(iCycle))) + + 'Status + WorkerMsg(tMsgID.NewJob, "Cycle: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & ((FilesDim + 1) * (CyclesDim + 1)) & " | " & fFILE(JobFile, True) & " | " & fFILE(CycleFiles(0), True), MsgSrc) + WorkerStatus("Current Job: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & ((FilesDim + 1) * (CyclesDim + 1)) & " | " & fFILE(JobFile, True) & " | " & fFILE(CycleFiles(0), True)) + WorkerJobStatus(iJob, "running... " & iCycle + 1 & "/" & (CyclesDim + 1), tJobStatus.Running) + + 'Output name definition + Select Case UCase(Cfg.BATCHoutpath) + Case sKey.JobPath + path0 = fPATH(JobFile) + Case Else + path0 = Cfg.BATCHoutpath + End Select + + If Cfg.BATCHoutSubD Then + MODdata.ModOutpName = path0 & fFILE(JobFile, False) & "\" & fFILE(JobFile, False) & "_" & fFILE(CycleFiles(0), False) + Else + MODdata.ModOutpName = path0 & fFILE(JobFile, False) & "_" & fFILE(CycleFiles(0), False) + End If + + End If + + '****************************************************************************************** + '********************************** VECTO-Cycle-loop START ********************************** + '****************************************************************************************** + jsubcycleDim = CycleFiles.Count - 1 + + If jsubcycleDim = -1 Then + WorkerMsg(tMsgID.Err, "No driving cycle defined!", MsgSrc) + JobAbortedByErr = True + GoTo lbNextJob + End If + + jsubcycle = -1 + For Each CurrentCycleFile In CycleFiles + jsubcycle += 1 + + ProgBarCtrl.ProgJobInt = 0 + + + If Not Cfg.BatchMode Then + MODdata.ModOutpName = fFileWoExt(JobFile) & "_" & fFILE(CurrentCycleFile, False) + WorkerMsg(tMsgID.NewJob, "Cycle: " & (jsubcycle + 1) & " / " & (jsubcycleDim + 1) & " | " & fFILE(CurrentCycleFile, True), MsgSrc) + End If + + If Cfg.DeclMode Then + + If Not Declaration.CalcInitCycle(jsubcycle) Then + JobAbortedByErr = True + GoTo lbNextJob + End If + + WorkerMsg(tMsgID.Normal, "WHTC Correction Factor: " & Declaration.WHTCcorrFactor, MsgSrc) + + Declaration.ReportAddCycle() + + End If + + + '************************************************************************************** + '***************************** VECTO-loading-loop START ******************************* + '************************************************************************************** + iLoad = -1 + For Each loading In LoadList + + iLoad += 1 + + 'ProgBar + If Not Cfg.BatchMode Then + ProgBarCtrl.ProgLock = True + ProgBarCtrl.ProgJobInt = 0 + ProgBarCtrl.ProgOverallStartInt = 100 * iJob / (FilesDim + 1) + 100 * jsubcycle / (jsubcycleDim + 1) * 1 / (FilesDim + 1) + 100 * iLoad / (iLoadDim + 1) * 1 / ((FilesDim + 1) * (jsubcycleDim + 1)) + ProgBarCtrl.PgroOverallEndInt = 100 * iJob / (FilesDim + 1) + 100 * jsubcycle / (jsubcycleDim + 1) * 1 / (FilesDim + 1) + 100 * (iLoad + 1) / (iLoadDim + 1) * 1 / ((FilesDim + 1) * (jsubcycleDim + 1)) + ProgBarCtrl.ProgLock = False + WorkerJobStatus(iJob, "running... " & (iLoad + 1) + jsubcycle * (iLoadDim + 1) & "/" & (jsubcycleDim + 1) * (iLoadDim + 1), tJobStatus.Running) + End If + + + If Cfg.DeclMode Then + + 'Results filename with loading + MODdata.ModOutpName = fFileWoExt(JobFile) & "_" & fFILE(CurrentCycleFile, False) & "_" & ConvLoading(loading) + + WorkerMsg(tMsgID.NewJob, "Loading: " & (iLoad + 1) & " / " & (iLoadDim + 1) & " | " & ConvLoading(loading), MsgSrc) + + If Not Declaration.CalcInitLoad(loading) Then + JobAbortedByErr = True + GoTo lbNextJob + End If + + WorkerStatus("Current Job: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & (FilesDim + 1) & " | " & fFILE(JobFile, True) & " | " & Declaration.CurrentMission.NameStr & " | " & ConvLoading(loading)) + + Else + + If Not Cfg.BatchMode Then WorkerStatus("Current Job: " & (iJob * (CyclesDim + 1) + iCycle + 1) & " / " & (FilesDim + 1) & " | " & fFILE(JobFile, True) & " | " & fFILE(CurrentCycleFile, True)) + + End If + + 'Clean up + MODdata.Init() + + 'Read cycle + DRI = New cDRI + DRI.FilePath = CurrentCycleFile + If Not DRI.ReadFile Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + + 'Grad to Alt + DRI.GradToAlt() + + 'Convert v(s) into v(t) (optional) + If DRI.Scycle Then + + MODdata.Vh.SetAlt() + + + If MsgOut Then WorkerMsg(tMsgID.Normal, "Converting cycle (v(s) => v(t))", MsgSrc) + + If Not DRI.ConvStoT() Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + End If + + 'If first time step is Zero then duplicate first values to start cycle with vehicle standing. + If DRI.Vvorg AndAlso DRI.tDim > 1 AndAlso DRI.Values(tDriComp.V)(0) < 0.0001 AndAlso DRI.Values(tDriComp.V)(1) >= 0.0001 Then + DRI.FirstZero() + End If + + 'Convert to 1Hz (optional) - does not apply to v(s) cycles because timestep is missing + If DRI.Tvorg Then + If MsgOut Then WorkerMsg(tMsgID.Normal, "Converting cycle to 1Hz", MsgSrc) + If Not DRI.ConvTo1Hz() Then + 'Error-notification in DRI.Convert() + CyclAbrtedByErr = True + GoTo lbAusg + End If + End If + + + '---------------------------------------------------------------------------- + '---------------------------------------------------------------------------- + + 'Initialize Cycle-specs (Speed, Accel, ...) + MODdata.CycleInit() + + If VEC.EngOnly Then + + If MsgOut Then WorkerMsg(tMsgID.Normal, "Engine Only Calc", MsgSrc) + + 'Rechne .npi-Leistung in Pe und P_clutch um |@@| Expect Npi-Power into Pe and P_clutch + If Not MODdata.Px.Eng_Calc(False) Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + + Else + + 'Init auxiliaries + If Not VEC.AuxInit() Then + 'Error-notification within AuxInit() + JobAbortedByErr = True + GoTo lbNextJob + End If + + 'CAUTION: VehmodeInit() requires information from VECTO and DRI! + If Not VEH.VehmodeInit() Then + 'Error-notification within VehmodeInit() + JobAbortedByErr = True + GoTo lbNextJob + End If + + If GBX.TCon Then + If Not GBX.TCinit Then + 'Error-notification within TCinit() + JobAbortedByErr = True + GoTo lbNextJob + End If + End If + + + If MsgOut Then WorkerMsg(tMsgID.Normal, "Driving Cycle Preprocessing", MsgSrc) + If Not MODdata.Px.PreRun Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + + If VECTOworker.CancellationPending Then GoTo lbAbort + + + + If MsgOut Then WorkerMsg(tMsgID.Normal, "Vehicle Calc", MsgSrc) + + MODdata.Vh.DistCorrInit() + + If Not MODdata.Px.Calc() Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + + + If VECTOworker.CancellationPending Then GoTo lbAbort + + 'Calculate CycleKin (for erg/sum, etc.) + MODdata.CylceKin.Calc() + + End If + '---------------------------------------------------------------------------- + '---------------------------------------------------------------------------- + + + If MsgOut Then WorkerMsg(tMsgID.Normal, "FC Interpolation", MsgSrc) + + 'Calculate FC + MODdata.FCcalc(True) + + If VECTOworker.CancellationPending Then GoTo lbAbort + + '*** second-by-second output *** + If Cfg.ModOut Then + If MsgOut Then WorkerMsg(tMsgID.Normal, "Writing modal output", MsgSrc) + If Not MODdata.Output() Then + CyclAbrtedByErr = True + GoTo lbAusg + End If + + WorkerMsg(tMsgID.Normal, "Modal Results written to: " & fFILE(MODdata.ModOutpName & ".vmod", True), MsgSrc, MODdata.ModOutpName & ".vmod") + + End If + + +lbAusg: + + If VECTOworker.CancellationPending Then GoTo lbAbort + + 'Status-Update + ProgBarCtrl.ProgLock = True + If Cfg.BatchMode Then + WorkerProgJobEnd(100 * (iJob * (CyclesDim + 1) + iCycle + 1) / ((FilesDim + 1) * (CyclesDim + 1))) + Else + WorkerProgJobEnd(100 * iJob / (FilesDim + 1) + 100 * jsubcycle / (jsubcycleDim + 1) * 1 / (FilesDim + 1) + 100 * (iLoad + 1) / (iLoadDim + 1) * 1 / ((FilesDim + 1) * (jsubcycleDim + 1))) + End If + + If Cfg.DeclMode Then + Declaration.ReportAddResults() + End If + + 'VSUM Output (first Calculation - Initialization & Header) + If Not VSUM.WriteVSUM(iJob * (CyclesDim + 1) + iCycle + 1, fFILE(JobFile, True), fFILE(CurrentCycleFile, True), CyclAbrtedByErr) Then GoTo lbErrInJobLoop + + 'Data Cleanup + MODdata.CleanUp() + + Next + + '******************************************************************************** + '******************** END *** VECTO-loading loop *** END ************************ + '******************************************************************************** + + + Next + + '****************************************************************************************** + '************************* END *** VECTO Cycle-loop *** END ************************* + '****************************************************************************************** + + + Next + '********************************************************************************************** + '****************************** END *** Cycle-loop *** END ****************************** + '********************************************************************************************** + + If Cfg.DeclMode Then + WorkerMsg(tMsgID.Normal, "Writing report file", MsgSrc) + If Declaration.WriteReport() Then + WorkerMsg(tMsgID.Normal, "Report written to: " & fFILE(Declaration.Report.Filepath, True), MsgSrc, "<RUN>" & Declaration.Report.Filepath) + Else + WorkerMsg(tMsgID.Err, "Failed to write pdf report!", MsgSrc) + JobAbortedByErr = True + GoTo lbNextJob + End If + End If + +lbNextJob: + + If JobAbortedByErr Or (CyclAbrtedByErr And CyclesDim = 0) Then + + If JobAbortedByErr Then + If CInt(iJob * (CyclesDim + 1) + 1) = CInt((iJob + 1) * (CyclesDim + 1)) Then + VSUM.WriteVSUM(((iJob + 1) * (CyclesDim + 1)).ToString, fFILE(JobFile, True), "-", True) + Else + VSUM.WriteVSUM((iJob * (CyclesDim + 1) + 1).ToString & ".." & ((iJob + 1) * (CyclesDim + 1)).ToString, fFILE(JobFile, True), "-", True) + End If + End If + + WorkerJobStatus(iJob, "Aborted due to error!", tJobStatus.Err) + + Else + + MsgStrBuilder.Length = 0 + MsgStrBuilder.Append("done") + 'If GEN.irechwahl = tCalcMode.cmHEV Then MsgStrBuilder.Append(" (dSOC = " & SOC(MODdata.tDim) - SOC(0) & ")") + + 'Add input file list to signature list + If VEC.CreateFileList Then + For i = 0 To VEC.FileList.Count - 1 + Lic.FileSigning.AddFile(VEC.FileList(i)) + Next + Else + WorkerMsg(tMsgID.Err, "Could not create file list for signing!", MsgSrc) + End If + + If MSGwarn > 0 Then + MsgStrBuilder.Append(". " & MSGwarn & " Warning") + If MSGwarn > 1 Then MsgStrBuilder.Append("s") + End If + + If MSGerror > 0 Then + MsgStrBuilder.Append(". " & MSGerror & " Error") + If MSGerror > 1 Then MsgStrBuilder.Append("s") + End If + + If MSGerror > 0 Then + WorkerJobStatus(iJob, MsgStrBuilder.ToString & ".", tJobStatus.Warn) + Else + WorkerJobStatus(iJob, MsgStrBuilder.ToString & ".", tJobStatus.OK) + End If + + End If + + 'Check whether Abort + If VECTOworker.CancellationPending Then GoTo lbAbort + + Next + + '********************************************************************************************** + '******************************* END *** Job loop *** END ******************************* + '********************************************************************************************** + + WorkerMsg(tMsgID.Normal, "Summary Results written to: " & fFILE(VSUM.VSUMfile, True), MsgSrc, VSUM.VSUMfile) + + 'JSON Erg Output + If VSUM.WriteJSON() Then + WorkerMsg(tMsgID.Normal, "Summary Results (JSON) written to: " & fFILE(VSUM.VSUMfile & ".json", True), MsgSrc, VSUM.VSUMfile & ".json") + Else + WorkerMsg(tMsgID.Err, "Failed to write JSON Summary Results!", MsgSrc) + End If + + + 'Write file signatures + WorkerMsg(tMsgID.Normal, "Signing files", MsgSrc) + Lic.FileSigning.Mode = vectolic.cFileSigning.tMode.Auto + + If Lic.FileSigning.WriteSigFile(SigFile, LicSigAppCode) Then + WorkerMsg(tMsgID.Normal, "Files signed successfully: " & fFILE(SigFile, True), MsgSrc, "<GUI>" & SigFile) + Else + WorkerMsg(tMsgID.Err, "Failed to sign files! " & Lic.FileSigning.ErrorMsg, MsgSrc) + End If + + WorkerMsg(tMsgID.Normal, "done", MsgSrc) + VECTO = tCalcResult.Done + GoTo lbExit + + +lbErrBefore: '!!!!!!!!!! Abbruch bevor (!!!) der erste Job angefangen wurde !!!!!!!!!!! + WorkerMsg(tMsgID.Normal, "aborted", MsgSrc) + VECTO = tCalcResult.Err + + For i = 0 To FilesDim + WorkerJobStatus(i, "", tJobStatus.Undef) + Next + + GoTo lbExit + + +lbErrInJobLoop: + WorkerMsg(tMsgID.Normal, "aborted", MsgSrc) + WorkerJobStatus(iJob, "aborted", tJobStatus.Err) + VECTO = tCalcResult.Err + + For i = iJob + 1 To FilesDim + WorkerJobStatus(i, "", tJobStatus.Undef) + Next + + MODdata.CleanUp() + + GoTo lbExit + +lbAbort: + WorkerMsg(tMsgID.Normal, "aborted", MsgSrc) + WorkerJobStatus(iJob, "aborted", tJobStatus.Warn) + VECTO = tCalcResult.Abort + + For i = iJob + 1 To FilesDim + WorkerJobStatus(i, "", tJobStatus.Undef) + Next + + MODdata.CleanUp() + +lbExit: + VEC = Nothing + VEH = Nothing + FLD = Nothing + MAP = Nothing + DRI = Nothing + MODdata = Nothing + VSUM = Nothing + + ENG = Nothing + GBX = Nothing + + End Function + + Public Function ReadFiles() As Boolean + Dim sb As cSubPath + Dim OtherModeString As String + + + Dim MsgSrc As String + + MsgSrc = "Main/ReadInp" + + If Cfg.DeclMode Then + OtherModeString = "Engineering" + Else + OtherModeString = "Declaration" + End If + + '----------------------------- ~VECTO~ ----------------------------- + 'Read Job file + If UCase(fEXT(JobFile)) <> ".VECTO" Then + WorkerMsg(tMsgID.Err, "Only .VECTO files are supported in this mode", MsgSrc) + Return False + End If + + VEC = New cVECTO + VEC.FilePath = JobFile + + Try + If Not VEC.ReadFile() Then + WorkerMsg(tMsgID.Err, "Cannot read .vecto file (" & JobFile & ")", MsgSrc) + Return False + End If + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & JobFile & ")", MsgSrc, JobFile) + Return False + End Try + + 'Check if file was saved in different mode + If Cfg.DeclMode <> VEC.SavedInDeclMode Then WorkerMsg(tMsgID.Warn, "Job file was created in " & OtherModeString & " Mode! Some parameters might be missing and cause errors.", MsgSrc, "<GUI>" & JobFile) + + + '----------------------------- ~VEH~ ----------------------------- + VEH = New cVEH + + 'Read vehicle specifications + If Not VEC.EngOnly Then + VEH.FilePath = VEC.PathVEH + Try + If Not VEH.ReadFile Then Return False + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & VEC.PathVEH & ")", MsgSrc, VEC.PathVEH) + Return False + End Try + + 'Check if file was saved in different mode + If Cfg.DeclMode <> VEH.SavedInDeclMode Then WorkerMsg(tMsgID.Warn, "Vehicle file was created in " & OtherModeString & " Mode! Some parameters might be missing and cause errors.", MsgSrc, "<GUI>" & VEC.PathVEH) + + End If + + + If Cfg.DeclMode Then + If Not Declaration.SetRef() Then + WorkerMsg(tMsgID.Err, "Vehicle Configuration not found in Segment Table!", MsgSrc) + Return False + End If + End If + + + If Cfg.DeclMode Then + If Not VEC.DeclInit() Then Return False + End If + + + CycleFiles.Clear() + For Each sb In VEC.CycleFiles + CycleFiles.Add(sb.FullPath) + Next + + 'Error message in init() + If Not VEC.Init Then Return False + + + + '---------------------- ~ENG~ (incl. FLD, MAP) ---------------------- + ENG = New cENG + ENG.FilePath = VEC.PathENG + Try + If Not ENG.ReadFile Then Return False + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & VEC.PathENG & ")", MsgSrc, VEC.PathENG) + Return False + End Try + + 'Check if file was saved in different mode + If Cfg.DeclMode <> ENG.SavedInDeclMode Then WorkerMsg(tMsgID.Warn, "Engine file was created in " & OtherModeString & " Mode! Some parameters might be missing and cause errors.", MsgSrc, "<GUI>" & VEC.PathENG) + + + + '----------------------------- ~GBX~ ----------------------------- + GBX = New cGBX + + If Not VEC.EngOnly Then + GBX.FilePath = VEC.PathGBX + Try + If Not GBX.ReadFile Then Return False + If Not GBX.GSinit Then Return False + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & VEC.PathGBX & ")", MsgSrc, VEC.PathGBX) + Return False + End Try + + 'Check if file was saved in different mode + If Cfg.DeclMode <> GBX.SavedInDeclMode Then WorkerMsg(tMsgID.Warn, "Gearbox file was created in " & OtherModeString & " Mode! Some parameters might be missing and cause errors.", MsgSrc, "<GUI>" & VEC.PathGBX) + + End If + + 'Must be called after cGBX.ReadFile because cGBX.GearCount is needed + ENG.Init() + + 'Must be called after cENG.Init because FLD must be loaded + If Cfg.DeclMode Then + If Not ENG.DeclInit() Then Return False + End If + + + 'Must be after ENG.Init() + If Cfg.DeclMode Then + If Not GBX.DeclInit() Then Return False + End If + + + + + Return True + + End Function + + '--------------------------------------------------------------------------- + + +End Module diff --git a/VECTO/My Project/Application.Designer.vb b/VECTO/My Project/Application.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..88102260fabf8c59543657a777b53bd5157c2b62 --- /dev/null +++ b/VECTO/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' <auto-generated> +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.269 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' </auto-generated> +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'HINWEIS: Diese Datei wird automatisch generiert. Ändern Sie sie nicht direkt. Zum Ändern + ' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer. + ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im + ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor. + ' + Partial Friend Class MyApplication + + <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.VECTO.F_MAINForm + End Sub + End Class +End Namespace diff --git a/VECTO/My Project/Application.myapp b/VECTO/My Project/Application.myapp new file mode 100644 index 0000000000000000000000000000000000000000..83d5c6a93c884f822d241cdad83ef547e8c4dbe0 --- /dev/null +++ b/VECTO/My Project/Application.myapp @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <MySubMain>true</MySubMain> + <MainForm>F_MAINForm</MainForm> + <SingleInstance>false</SingleInstance> + <ShutdownMode>0</ShutdownMode> + <EnableVisualStyles>true</EnableVisualStyles> + <AuthenticationMode>0</AuthenticationMode> + <SaveMySettingsOnExit>true</SaveMySettingsOnExit> +</MyApplicationData> \ No newline at end of file diff --git a/VECTO/My Project/AssemblyInfo.vb b/VECTO/My Project/AssemblyInfo.vb new file mode 100644 index 0000000000000000000000000000000000000000..7cc99cef6e4ad7b5fe0721a9ba425bf0e7aa75fe --- /dev/null +++ b/VECTO/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Below is the General Information about the Attributes +' controlling the Assembly. Change these attribute values to modify the information +' associated with the Assembly. + +' Review the values of the Assembly Attributes + +<Assembly: AssemblyTitle("VECTO")> +<Assembly: AssemblyDescription("Vehicle Energy Consumption Calculation Tool")> +<Assembly: AssemblyCompany("")> +<Assembly: AssemblyProduct("VECTO")> +<Assembly: AssemblyCopyright("© European Commission 2014")> +<Assembly: AssemblyTrademark("")> + +<Assembly: ComVisible(False)> + +'The following GUID is for the ID of the Typelib if this project is exposed to COM +<Assembly: Guid("175c31e7-2d95-4afb-afec-c4d7719177db")> + +' Version information for an assembly consists of the following four values: +' +' Major Release +' Minor Release +' Build Number +' Revision +' +' You can specify all the values or use the defaults for Build and Revision Numbers +' by entering "*" in them: +' <Assembly: AssemblyVersion("1.0.*")> + +<Assembly: AssemblyVersion("2.0.4.0")> +<Assembly: AssemblyFileVersion("2.0.4.0")> diff --git a/VECTO/My Project/Resources.Designer.vb b/VECTO/My Project/Resources.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..bf5f09ecc54de77f5d2e0e64bf801668e020a0ae --- /dev/null +++ b/VECTO/My Project/Resources.Designer.vb @@ -0,0 +1,423 @@ +'------------------------------------------------------------------------------ +' <auto-generated> +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.18444 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' </auto-generated> +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + '''<summary> + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + '''</summary> + <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _ + Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ + Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ + Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + '''<summary> + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + '''</summary> + <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("VECTO.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + '''<summary> + ''' Ãœberschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + '''</summary> + <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Actions_arrow_down_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Actions_arrow_down_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Actions_arrow_up_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Actions_arrow_up_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Actions_document_save_as_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Actions_document_save_as_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Actions_document_save_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Actions_document_save_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property application_add_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("application_add_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property application_export_icon_small() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("application_export_icon_small", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property blue_document_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("blue_document_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property export_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("export_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property F_ENG() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("F_ENG", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property F_GBX() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("F_GBX", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property F_Graph() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("F_Graph", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property F_VECTO() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("F_VECTO", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property F_VEH() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("F_VEH", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Help_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Help_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Icon ähnlich wie (Symbol). + '''</summary> + Friend ReadOnly Property Icon2() As System.Drawing.Icon + Get + Dim obj As Object = ResourceManager.GetObject("Icon2", resourceCulture) + Return CType(obj,System.Drawing.Icon) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Information_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Information_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property IVT_91x44() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("IVT_91x44", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property IVT_About() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("IVT_About", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property JRC_About() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("JRC_About", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property minus_circle_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("minus_circle_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Misc_Tools_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Misc_Tools_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Open_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Open_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Play_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Play_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Play_icon_gray() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Play_icon_gray", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property plus_circle_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("plus_circle_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Refresh_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Refresh_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Status_dialog_password_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Status_dialog_password_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property Stop_icon() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Stop_icon", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property TUG_91x34() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("TUG_91x34", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property TUG_About() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("TUG_About", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_About() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_About", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_ENG() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_ENG", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_GBX() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_GBX", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_Mainform() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_Mainform", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_VECTO() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_VECTO", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + '''<summary> + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + '''</summary> + Friend ReadOnly Property VECTO_VEH() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("VECTO_VEH", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/VECTO/My Project/Resources.resx b/VECTO/My Project/Resources.resx new file mode 100644 index 0000000000000000000000000000000000000000..c3b31a6014d2ca5f6dc9118433f600b81d48fe66 --- /dev/null +++ b/VECTO/My Project/Resources.resx @@ -0,0 +1,229 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="Open_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Open-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="minus_circle_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\minus-circle-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Information_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Information-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Play_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Play-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Actions_document_save_as_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Actions-document-save-as-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Actions_arrow_down_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Actions-arrow-down-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="IVT_91x44" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\IVT_91x44.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="JRC_About" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\JRC-About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Misc_Tools_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Misc-Tools-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_VEH" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-VEH.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="IVT_About" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\IVT_About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Help_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Help-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_Mainform" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-Mainform.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_About" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Stop_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Stop-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Actions_document_save_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Actions-document-save-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Play_icon_gray" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Play-icon-gray.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="TUG_About" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\TUG-About.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_VECTO" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-VECTO.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_ENG" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-ENG.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="TUG_91x34" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\TUG_91x34.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Actions_arrow_up_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Actions-arrow-up-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="VECTO_GBX" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\VECTO-GBX.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="blue_document_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\blue-document-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="plus_circle_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\plus-circle-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Icon2" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Icon2.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="export_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\export-icon.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="application_export_icon_small" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\application-export-icon-small.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Status_dialog_password_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Status-dialog-password-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="Refresh_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\Refresh-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="application_add_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\application-add-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="F_Graph" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\F_Graph.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="F_ENG" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\F_ENG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="F_GBX" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\F_GBX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="F_VEH" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\F_VEH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> + <data name="F_VECTO" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\F_VECTO.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> +</root> \ No newline at end of file diff --git a/VECTO/My Project/Settings.Designer.vb b/VECTO/My Project/Settings.Designer.vb new file mode 100644 index 0000000000000000000000000000000000000000..86c711c9387497653dc0c59f7c8c61c116b6a0d4 --- /dev/null +++ b/VECTO/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' <auto-generated> +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.269 +' +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. +' </auto-generated> +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ + Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"), _ + Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "Funktion zum automatischen Speichern von My.Settings" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + <Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _ + Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ + Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _ + Friend Module MySettingsProperty + + <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _ + Friend ReadOnly Property Settings() As Global.VECTO.My.MySettings + Get + Return Global.VECTO.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/VECTO/My Project/Settings.settings b/VECTO/My Project/Settings.settings new file mode 100644 index 0000000000000000000000000000000000000000..f7f176ac8715c52bb2f04ede5d8826b746bbb8d9 --- /dev/null +++ b/VECTO/My Project/Settings.settings @@ -0,0 +1,5 @@ +<?xml version='1.0' encoding='utf-8'?> +<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true"> + <Profiles /> + <Settings /> +</SettingsFile> \ No newline at end of file diff --git a/VECTO/My Project/app.manifest b/VECTO/My Project/app.manifest new file mode 100644 index 0000000000000000000000000000000000000000..af3961de032a1ae1ec77ff374cd3aa1b32dade5a --- /dev/null +++ b/VECTO/My Project/app.manifest @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <!-- UAC-Manifestoptionen + Wenn Sie die Zugangsebene für das Windows-Benutzerkonto ändern möchten, ersetzen Sie den + requestedExecutionLevel-Knoten durch eines der folgenden Elemente. + + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> + + Durch Angeben des requestedExecutionLevel-Knotens wird die Datei- und Registrierungsvirtualisierung deaktiviert. + Wenn Sie Datei- und Registrierungsvirtualisierung für Abwärts- + kompatibilität verwenden möchten, löschen Sie den requestedExecutionLevel-Knoten. + --> + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + </requestedPrivileges> + </security> + </trustInfo> + + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- Eine Liste aller Windows-Versionen, mit denen die Anwendung kompatibel ist. Windows wählt automatisch die am stärksten kompatible Umgebung aus.--> + + <!-- Wenn die Anwendung mit Windows 7 kompatibel ist, heben Sie die Kommentierung des folgenden supportedOS-Knotens auf.--> + <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>--> + + </application> + </compatibility> + + <!-- Designs für allgemeine Windows-Steuerelemente und -Dialogfelder (Windows XP und höher) aktivieren --> + <!-- <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency>--> + +</asmv1:assembly> diff --git a/VECTO/Resources/Actions-arrow-down-icon.png b/VECTO/Resources/Actions-arrow-down-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0289ca8801e417c3cc3f189a670fc97b55ae44 Binary files /dev/null and b/VECTO/Resources/Actions-arrow-down-icon.png differ diff --git a/VECTO/Resources/Actions-arrow-up-icon.png b/VECTO/Resources/Actions-arrow-up-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ae696f334c4045efa97766c9081c50892a833268 Binary files /dev/null and b/VECTO/Resources/Actions-arrow-up-icon.png differ diff --git a/VECTO/Resources/Actions-document-save-as-icon.png b/VECTO/Resources/Actions-document-save-as-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad604d3a6efd63b7caf8042b7e0395842fb5cff Binary files /dev/null and b/VECTO/Resources/Actions-document-save-as-icon.png differ diff --git a/VECTO/Resources/Actions-document-save-icon.png b/VECTO/Resources/Actions-document-save-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..46e5e207b0883491221e6cfbca66982df3f66087 Binary files /dev/null and b/VECTO/Resources/Actions-document-save-icon.png differ diff --git a/VECTO/Resources/F_ENG.png b/VECTO/Resources/F_ENG.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6571668510a6662db1f54f6e4beaff41f1a132 Binary files /dev/null and b/VECTO/Resources/F_ENG.png differ diff --git a/VECTO/Resources/F_GBX.png b/VECTO/Resources/F_GBX.png new file mode 100644 index 0000000000000000000000000000000000000000..7aac7aa4e9150ae279ba5a8fac15596ff4158cc2 Binary files /dev/null and b/VECTO/Resources/F_GBX.png differ diff --git a/VECTO/Resources/F_Graph.png b/VECTO/Resources/F_Graph.png new file mode 100644 index 0000000000000000000000000000000000000000..bb355c16b2328c417bfb5b52b72f2fd9c3b92d9b Binary files /dev/null and b/VECTO/Resources/F_Graph.png differ diff --git a/VECTO/Resources/F_VECTO.png b/VECTO/Resources/F_VECTO.png new file mode 100644 index 0000000000000000000000000000000000000000..d440f2a5814553e223e1d628524a53f7e35eda66 Binary files /dev/null and b/VECTO/Resources/F_VECTO.png differ diff --git a/VECTO/Resources/F_VEH.png b/VECTO/Resources/F_VEH.png new file mode 100644 index 0000000000000000000000000000000000000000..890b00161f9a0c9987f2e02b6e4e09f8aebd95a7 Binary files /dev/null and b/VECTO/Resources/F_VEH.png differ diff --git a/VECTO/Resources/Help-icon.png b/VECTO/Resources/Help-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6362dc4da8f24244b81eefb5fc7123a88412d435 Binary files /dev/null and b/VECTO/Resources/Help-icon.png differ diff --git a/VECTO/Resources/IVT_91x44.png b/VECTO/Resources/IVT_91x44.png new file mode 100644 index 0000000000000000000000000000000000000000..83dc4d4623f649eccf0f2a5c555d3d9423c4c3db Binary files /dev/null and b/VECTO/Resources/IVT_91x44.png differ diff --git a/VECTO/Resources/IVT_About.png b/VECTO/Resources/IVT_About.png new file mode 100644 index 0000000000000000000000000000000000000000..a667427280921ae3f268416731627563c893b853 Binary files /dev/null and b/VECTO/Resources/IVT_About.png differ diff --git a/VECTO/Resources/Icon.png b/VECTO/Resources/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2918c0d971d01121ff241df8c4a165848e0266e2 Binary files /dev/null and b/VECTO/Resources/Icon.png differ diff --git a/VECTO/Resources/Icon2.ico b/VECTO/Resources/Icon2.ico new file mode 100644 index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f Binary files /dev/null and b/VECTO/Resources/Icon2.ico differ diff --git a/VECTO/Resources/Information-icon.png b/VECTO/Resources/Information-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4e92d064e1f33d676048c83e4a1ea0e99aa9fe8e Binary files /dev/null and b/VECTO/Resources/Information-icon.png differ diff --git a/VECTO/Resources/JRC-About.png b/VECTO/Resources/JRC-About.png new file mode 100644 index 0000000000000000000000000000000000000000..7ccda103840925863e14e959ef1371dedc797ba6 Binary files /dev/null and b/VECTO/Resources/JRC-About.png differ diff --git a/VECTO/Resources/Misc-Tools-icon.png b/VECTO/Resources/Misc-Tools-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..529f37be9b43ca3935728400d259d2e36072333b Binary files /dev/null and b/VECTO/Resources/Misc-Tools-icon.png differ diff --git a/VECTO/Resources/Open-icon.png b/VECTO/Resources/Open-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5b25c5b924bd2a400e3b1a24887bad98d10b5ad2 Binary files /dev/null and b/VECTO/Resources/Open-icon.png differ diff --git a/VECTO/Resources/Play-icon-gray.png b/VECTO/Resources/Play-icon-gray.png new file mode 100644 index 0000000000000000000000000000000000000000..2e72ed78dc83d4130dde1a7a5db3fb09620708ca Binary files /dev/null and b/VECTO/Resources/Play-icon-gray.png differ diff --git a/VECTO/Resources/Play-icon.png b/VECTO/Resources/Play-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bf822612ee7f416f189a9f8d6c03cd4a6411ca4f Binary files /dev/null and b/VECTO/Resources/Play-icon.png differ diff --git a/VECTO/Resources/Refresh-icon.png b/VECTO/Resources/Refresh-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..328c1fd1a489d874ccc7e91574031062a6ce224b Binary files /dev/null and b/VECTO/Resources/Refresh-icon.png differ diff --git a/VECTO/Resources/Status-dialog-password-icon.png b/VECTO/Resources/Status-dialog-password-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..293b65c17b25290b2df44d826e79c331df0baa2c Binary files /dev/null and b/VECTO/Resources/Status-dialog-password-icon.png differ diff --git a/VECTO/Resources/Stop-icon.png b/VECTO/Resources/Stop-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d6badde84674c2fa9c4e8760a2f79d694981ef7f Binary files /dev/null and b/VECTO/Resources/Stop-icon.png differ diff --git a/VECTO/Resources/TUG-About.png b/VECTO/Resources/TUG-About.png new file mode 100644 index 0000000000000000000000000000000000000000..ddd94bb48e71c8ad0b8818f1de3ee3b430b7cdb7 Binary files /dev/null and b/VECTO/Resources/TUG-About.png differ diff --git a/VECTO/Resources/TUG_91x34.png b/VECTO/Resources/TUG_91x34.png new file mode 100644 index 0000000000000000000000000000000000000000..4559ded9fe5d1f3613abbba3bfb5c080259cd6e6 Binary files /dev/null and b/VECTO/Resources/TUG_91x34.png differ diff --git a/VECTO/Resources/VECTO-About.png b/VECTO/Resources/VECTO-About.png new file mode 100644 index 0000000000000000000000000000000000000000..4755b511626afcd157f27b0cf70e1c21b6ee067e Binary files /dev/null and b/VECTO/Resources/VECTO-About.png differ diff --git a/VECTO/Resources/VECTO-ENG.png b/VECTO/Resources/VECTO-ENG.png new file mode 100644 index 0000000000000000000000000000000000000000..619455011759c4b8cf122cae8e0a3668daecaaea Binary files /dev/null and b/VECTO/Resources/VECTO-ENG.png differ diff --git a/VECTO/Resources/VECTO-GBX.png b/VECTO/Resources/VECTO-GBX.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ec5648d6f395caa802bd0c640b5a93912139ea Binary files /dev/null and b/VECTO/Resources/VECTO-GBX.png differ diff --git a/VECTO/Resources/VECTO-Mainform.png b/VECTO/Resources/VECTO-Mainform.png new file mode 100644 index 0000000000000000000000000000000000000000..f94ebee0045ff4509bcda8f1493c87adf6aa095b Binary files /dev/null and b/VECTO/Resources/VECTO-Mainform.png differ diff --git a/VECTO/Resources/VECTO-VECTO.png b/VECTO/Resources/VECTO-VECTO.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1a9eec61f3a096e57f1700e1a44e65b9f1a4a4 Binary files /dev/null and b/VECTO/Resources/VECTO-VECTO.png differ diff --git a/VECTO/Resources/VECTO-VEH.png b/VECTO/Resources/VECTO-VEH.png new file mode 100644 index 0000000000000000000000000000000000000000..b97449cda1e864cc612cb206eafe9e8762a24715 Binary files /dev/null and b/VECTO/Resources/VECTO-VEH.png differ diff --git a/VECTO/Resources/application-add-icon.png b/VECTO/Resources/application-add-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b9835680ce0a2fd5a5291104b619c6e55fbf9596 Binary files /dev/null and b/VECTO/Resources/application-add-icon.png differ diff --git a/VECTO/Resources/application-export-icon-small.png b/VECTO/Resources/application-export-icon-small.png new file mode 100644 index 0000000000000000000000000000000000000000..308a361b10574649a2b733de3d933a243c4f4f4d Binary files /dev/null and b/VECTO/Resources/application-export-icon-small.png differ diff --git a/VECTO/Resources/blue-document-icon.png b/VECTO/Resources/blue-document-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6b2545a5a31915b051147d705e8ae6563b08b8cd Binary files /dev/null and b/VECTO/Resources/blue-document-icon.png differ diff --git a/VECTO/Resources/export-icon.png b/VECTO/Resources/export-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bd793ef79ee1555de6f047470d88727d38568891 Binary files /dev/null and b/VECTO/Resources/export-icon.png differ diff --git a/VECTO/Resources/minus-circle-icon.png b/VECTO/Resources/minus-circle-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0cd0ca2ba04870af50161766259ffbfd7f0e3855 Binary files /dev/null and b/VECTO/Resources/minus-circle-icon.png differ diff --git a/VECTO/Resources/plus-circle-icon.png b/VECTO/Resources/plus-circle-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..113873963c25ca9c9f0eb89e5476ff794eebac66 Binary files /dev/null and b/VECTO/Resources/plus-circle-icon.png differ diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj new file mode 100644 index 0000000000000000000000000000000000000000..2018c83bf8063c4725c819038d9912289b1f1835 --- /dev/null +++ b/VECTO/VECTO.vbproj @@ -0,0 +1,456 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{AAC0F132-0A9F-45B3-B682-77AC9B24B352}</ProjectGuid> + <OutputType>WinExe</OutputType> + <StartupObject>VECTO.My.MyApplication</StartupObject> + <RootNamespace>VECTO</RootNamespace> + <AssemblyName>VECTO</AssemblyName> + <MyType>WindowsForms</MyType> + <ApplicationIcon>Resources\Icon2.ico</ApplicationIcon> + <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> + <FileUpgradeFlags> + </FileUpgradeFlags> + <OldToolsVersion>2.0</OldToolsVersion> + <UpgradeBackupLocation /> + <IsWebBootstrapper>false</IsWebBootstrapper> + <TargetFrameworkProfile /> + <PublishUrl>publish\</PublishUrl> + <Install>true</Install> + <InstallFrom>Disk</InstallFrom> + <UpdateEnabled>false</UpdateEnabled> + <UpdateMode>Foreground</UpdateMode> + <UpdateInterval>7</UpdateInterval> + <UpdateIntervalUnits>Days</UpdateIntervalUnits> + <UpdatePeriodically>false</UpdatePeriodically> + <UpdateRequired>false</UpdateRequired> + <MapFileExtensions>true</MapFileExtensions> + <ApplicationRevision>0</ApplicationRevision> + <ApplicationVersion>1.0.0.%2a</ApplicationVersion> + <UseApplicationTrust>false</UseApplicationTrust> + <BootstrapperEnabled>true</BootstrapperEnabled> + <SccProjectName>SAK</SccProjectName> + <SccLocalPath>SAK</SccLocalPath> + <SccAuxPath>SAK</SccAuxPath> + <SccProvider>SAK</SccProvider> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <DefineDebug>true</DefineDebug> + <DefineTrace>true</DefineTrace> + <OutputPath>bin\Debug\</OutputPath> + <DocumentationFile>VECTO.xml</DocumentationFile> + <NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>None</DebugType> + <DefineDebug>false</DefineDebug> + <DefineTrace>true</DefineTrace> + <Optimize>false</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DocumentationFile>VECTO.xml</DocumentationFile> + <NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <PlatformTarget>AnyCPU</PlatformTarget> + </PropertyGroup> + <PropertyGroup> + <ApplicationManifest>My Project\app.manifest</ApplicationManifest> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> + <DebugSymbols>true</DebugSymbols> + <DefineDebug>true</DefineDebug> + <DefineTrace>true</DefineTrace> + <OutputPath>bin\x86\Debug\</OutputPath> + <DocumentationFile>VECTO.xml</DocumentationFile> + <NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn> + <DebugType>full</DebugType> + <PlatformTarget>x86</PlatformTarget> + <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets> + <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> + <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> + <DefineTrace>true</DefineTrace> + <OutputPath>bin\x86\Release\</OutputPath> + <DocumentationFile>VECTO.xml</DocumentationFile> + <NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn> + <DebugType>None</DebugType> + <PlatformTarget>x86</PlatformTarget> + <CodeAnalysisIgnoreBuiltInRuleSets>false</CodeAnalysisIgnoreBuiltInRuleSets> + <CodeAnalysisIgnoreBuiltInRules>false</CodeAnalysisIgnoreBuiltInRules> + <CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules> + </PropertyGroup> + <ItemGroup> + <Reference Include="itextsharp"> + <HintPath>..\Third Party Libraries\itextsharp\itextsharp.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json"> + <HintPath>..\Third Party Libraries\JSON.Net\Bin\Net40\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Deployment" /> + <Reference Include="System.Drawing" /> + <Reference Include="System.Management" /> + <Reference Include="System.Runtime.Remoting" /> + <Reference Include="System.Windows.Forms" /> + <Reference Include="System.Windows.Forms.DataVisualization" /> + <Reference Include="System.Xml" /> + <Reference Include="vectolic, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>bin\Debug\vectolic.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Import Include="Microsoft.VisualBasic" /> + <Import Include="System" /> + <Import Include="System.Collections" /> + <Import Include="System.Data" /> + <Import Include="System.Drawing" /> + <Import Include="System.Diagnostics" /> + <Import Include="System.Windows.Forms" /> + </ItemGroup> + <ItemGroup> + <Compile Include="ApplicationEvents.vb" /> + <Compile Include="cJSONparser.vb" /> + <Compile Include="cDeclaration.vb" /> + <Compile Include="GUI\F_FileSign.Designer.vb"> + <DependentUpon>F_FileSign.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_FileSign.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_FLD.Designer.vb"> + <DependentUpon>F_FLD.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_FLD.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_Graph.Designer.vb"> + <DependentUpon>F_Graph.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_Graph.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_Graph_ChEdit.Designer.vb"> + <DependentUpon>F_Graph_ChEdit.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_Graph_ChEdit.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_Welcome.Designer.vb"> + <DependentUpon>F_Welcome.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_Welcome.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_ENG.Designer.vb"> + <DependentUpon>F_ENG.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_ENG.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_GBX.Designer.vb"> + <DependentUpon>F_GBX.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_GBX.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_StrInpBox.designer.vb"> + <DependentUpon>F_StrInpBox.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_StrInpBox.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_VEH_AuxDlog.Designer.vb"> + <DependentUpon>F_VEH_AuxDlog.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_VEH_AuxDlog.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_VEH_Axle.Designer.vb"> + <DependentUpon>F_VEH_Axle.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_VEH_Axle.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Input Files\cAux.vb" /> + <Compile Include="Input Files\cAuxEntry.vb" /> + <Compile Include="Input Files\cENG.vb" /> + <Compile Include="Input Files\cGBX.vb" /> + <Compile Include="cConfig.vb" /> + <Compile Include="cDelaunayMap.vb" /> + <Compile Include="cDEV.vb" /> + <Compile Include="File Browser\cFileBrowser.vb" /> + <Compile Include="MODcalc\cVh.vb" /> + <Compile Include="File Browser\FB_Dialog.designer.vb"> + <DependentUpon>FB_Dialog.vb</DependentUpon> + </Compile> + <Compile Include="File Browser\FB_Dialog.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="File Browser\FB_FavDlog.designer.vb"> + <DependentUpon>FB_FavDlog.vb</DependentUpon> + </Compile> + <Compile Include="File Browser\FB_FavDlog.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="MODcalc\cPower.vb" /> + <Compile Include="MODcalc\cMOD.vb" /> + <Compile Include="Input Files\cFLD.vb" /> + <Compile Include="Input Files\cMAP.vb" /> + <Compile Include="Input Files\cDRI.vb" /> + <Compile Include="Input Files\cVECTO.vb" /> + <Compile Include="Input Files\cVEH.vb" /> + <Compile Include="GUI\F_GBX_GearDlog.Designer.vb"> + <DependentUpon>F_GBX_GearDlog.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_GBX_GearDlog.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="Input Files\cSubPath.vb" /> + <Compile Include="GUI\F_ShutDown.Designer.vb"> + <DependentUpon>F_ShutDown.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_ShutDown.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_VECTO.Designer.vb"> + <DependentUpon>F_VECTO.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_VECTO.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="cFile V3.vb" /> + <Compile Include="VECTO_Global.vb" /> + <Compile Include="VECTO_Types.vb" /> + <Compile Include="cRegression.vb" /> + <Compile Include="GUI\GUI_Subs.vb" /> + <Compile Include="GUI\F_VEH.Designer.vb"> + <DependentUpon>F_VEH.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_VEH.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_Settings.Designer.vb"> + <DependentUpon>F_Settings.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_Settings.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_AboutBox.Designer.vb"> + <DependentUpon>F_AboutBox.vb</DependentUpon> + </Compile> + <Compile Include="GUI\F_AboutBox.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="M_MAIN.vb" /> + <Compile Include="cVSUM.vb" /> + <Compile Include="GUI\F_MAINForm.vb"> + <SubType>Form</SubType> + </Compile> + <Compile Include="GUI\F_MAINForm.Designer.vb"> + <DependentUpon>F_MAINForm.vb</DependentUpon> + <SubType>Form</SubType> + </Compile> + <Compile Include="File Browser\FB_Global.vb" /> + <Compile Include="cCycleKin.vb" /> + <Compile Include="My Project\AssemblyInfo.vb" /> + <Compile Include="My Project\Application.Designer.vb"> + <AutoGen>True</AutoGen> + <DependentUpon>Application.myapp</DependentUpon> + </Compile> + <Compile Include="My Project\Resources.Designer.vb"> + <AutoGen>True</AutoGen> + <DesignTime>True</DesignTime> + <DependentUpon>Resources.resx</DependentUpon> + </Compile> + <Compile Include="My Project\Settings.Designer.vb"> + <AutoGen>True</AutoGen> + <DependentUpon>Settings.settings</DependentUpon> + <DesignTimeSharedInput>True</DesignTimeSharedInput> + </Compile> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="File Browser\FB_Dialog.resx"> + <DependentUpon>FB_Dialog.vb</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="File Browser\FB_FavDlog.resx"> + <DependentUpon>FB_FavDlog.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_FileSign.resx"> + <DependentUpon>F_FileSign.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_FLD.resx"> + <DependentUpon>F_FLD.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_Graph.resx"> + <DependentUpon>F_Graph.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_Graph_ChEdit.resx"> + <DependentUpon>F_Graph_ChEdit.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_Welcome.resx"> + <DependentUpon>F_Welcome.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_ENG.resx"> + <DependentUpon>F_ENG.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_GBX.resx"> + <DependentUpon>F_GBX.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_MAINForm.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_MAINForm.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_VECTO.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_VECTO.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_ShutDown.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_ShutDown.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_StrInpBox.resx"> + <DependentUpon>F_StrInpBox.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_VEH.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_VEH.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_Settings.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_Settings.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_AboutBox.resx"> + <SubType>Designer</SubType> + <DependentUpon>F_AboutBox.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_VEH_AuxDlog.resx"> + <DependentUpon>F_VEH_AuxDlog.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_VEH_Axle.resx"> + <DependentUpon>F_VEH_Axle.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="GUI\F_GBX_GearDlog.resx"> + <DependentUpon>F_GBX_GearDlog.vb</DependentUpon> + </EmbeddedResource> + <EmbeddedResource Include="My Project\Resources.resx"> + <Generator>VbMyResourcesResXFileCodeGenerator</Generator> + <LastGenOutput>Resources.Designer.vb</LastGenOutput> + <CustomToolNamespace>My.Resources</CustomToolNamespace> + <SubType>Designer</SubType> + </EmbeddedResource> + </ItemGroup> + <ItemGroup> + <None Include="ClassDiagram1.cd" /> + <None Include="ClassDiagram2.cd" /> + <None Include="My Project\app.manifest"> + <SubType>Designer</SubType> + </None> + <None Include="My Project\Application.myapp"> + <Generator>MyApplicationCodeGenerator</Generator> + <LastGenOutput>Application.Designer.vb</LastGenOutput> + </None> + <None Include="My Project\Settings.settings"> + <Generator>SettingsSingleFileGenerator</Generator> + <CustomToolNamespace>My</CustomToolNamespace> + <LastGenOutput>Settings.Designer.vb</LastGenOutput> + </None> + </ItemGroup> + <ItemGroup> + <None Include="Resources\TUG-About.png" /> + <None Include="Resources\VECTO-About.png" /> + <None Include="Resources\VECTO-VEH.png" /> + <None Include="Resources\VECTO-GBX.png" /> + <None Include="Resources\VECTO-ENG.png" /> + <None Include="Resources\VECTO-VECTO.png" /> + <None Include="Resources\VECTO-Mainform.png" /> + <None Include="Resources\Play-icon-gray.png" /> + <None Include="Resources\Stop-icon.png" /> + <None Include="Resources\Play-icon.png" /> + <None Include="Resources\plus-circle-icon.png" /> + <None Include="Resources\IVT_91x44.png" /> + <None Include="Resources\Actions-document-save-as-icon.png" /> + <None Include="Resources\Actions-document-save-icon.png" /> + <None Include="Resources\minus-circle-icon.png" /> + <None Include="Resources\Open-icon.png" /> + <None Include="Resources\Actions-arrow-up-icon.png" /> + <None Include="Resources\Actions-arrow-down-icon.png" /> + <None Include="Resources\blue-document-icon.png" /> + <None Include="Resources\Misc-Tools-icon.png" /> + <None Include="Resources\export-icon.png" /> + <None Include="Resources\Information-icon.png" /> + <None Include="Resources\JRC-About.png" /> + <None Include="Resources\Icon.png" /> + <None Include="Resources\Icon2.ico" /> + <None Include="Resources\IVT_About.png" /> + <None Include="Resources\Help-icon.png" /> + <None Include="app.config" /> + <None Include="Resources\TUG_91x34.png" /> + </ItemGroup> + <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>true</Install> + </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1"> + <Visible>False</Visible> + <ProductName>Windows Installer 3.1</ProductName> + <Install>true</Install> + </BootstrapperPackage> + </ItemGroup> + <ItemGroup> + <None Include="Resources\application-export-icon-small.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\Status-dialog-password-icon.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\Refresh-icon.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\application-add-icon.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\F_Graph.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\F_ENG.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\F_GBX.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\F_VEH.png" /> + </ItemGroup> + <ItemGroup> + <None Include="Resources\F_VECTO.png" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\VECTOAux\VectoAuxiliaries\VectoAuxiliaries.vbproj"> + <Project>{fdeee460-0b8a-4ef6-8d9e-72f203a50f65}</Project> + <Name>VectoAuxiliaries</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project> \ No newline at end of file diff --git a/VECTO/VECTO_Global.vb b/VECTO/VECTO_Global.vb new file mode 100644 index 0000000000000000000000000000000000000000..ba51a54b74e0ef9c43e89e0f0cc4665b2c9712dd --- /dev/null +++ b/VECTO/VECTO_Global.vb @@ -0,0 +1,656 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Module VECTO_Global + + Public Const VECTOvers As String = "2.0.4-beta" + Public Const LicSigAppCode As String = "VECTO-Release-0093C61E0A2E4BFA9A7ED7E729C56AE4" + Public MyAppPath As String + Public MyConfPath As String + Public MyDeclPath As String + + 'Log + Public LogFile As cLogFile + + 'BackgroundWorker + Public VECTOworker As System.ComponentModel.BackgroundWorker + + 'Log/Msg + Public MSGerror As Integer + Public MSGwarn As Integer + + 'Config------------------------------------------------------- + Public Cfg As cConfig + + Public sKey As csKey + + 'File format + Public FileFormat As System.Text.Encoding = System.Text.Encoding.UTF8 + + Public VEC As cVECTO + Public VEH As cVEH + Public ENG As cENG + Public GBX As cGBX + Public MAP As cMAP + Public DRI As cDRI + Public FLD As List(Of cFLD) + Public MODdata As cMOD + Public Lic As vectolic.cLicense + Public VSUM As cVSUM + Public DEV As cDEV + + Public Declaration As cDeclaration + + Public ProgBarCtrl As cProgBarCtrl + + Public SetCulture As Boolean 'Damit der Backgroundworker das richtige Format verwendet + + Public Function nMtoPe(ByVal nU As Double, ByVal M As Double) As Double + Return ((nU * 2 * Math.PI / 60) * M / 1000) + End Function + + Public Function nPeToM(ByVal nU As Single, ByVal Pe As Double) As Single + Return Pe * 1000 / (nU * 2 * Math.PI / 60) + End Function + + +#Region "sKey > Typ Umwandlung" + + + Public Function GearboxConv(ByVal Gearbox As tGearbox) As String + Select Case Gearbox + Case tGearbox.Manual + Return "MT" + Case tGearbox.Automatic + Return "AT" + Case tGearbox.SemiAutomatic + Return "AMT" + Case Else 'tGearbox.Custom + Return "Custom" + End Select + End Function + + Public Function GearboxConv(ByVal Gearbox As String) As tGearbox + Select Case UCase(Trim(Gearbox)) + Case "MT" + Return tGearbox.Manual + Case "AT" + Return tGearbox.Automatic + Case "AMT" + Return tGearbox.SemiAutomatic + Case Else '"Custom" + Return tGearbox.Custom + End Select + End Function + + Public Function fDriComp(ByVal sK As String) As tDriComp + sK = Trim(UCase(sK)) + Select Case sK + Case sKey.DRI.t + Return tDriComp.t + Case sKey.DRI.V + Return tDriComp.V + Case sKey.DRI.Grad + Return tDriComp.Grad + Case sKey.DRI.nU + Return tDriComp.nU + Case sKey.DRI.Gears + Return tDriComp.Gears + Case sKey.DRI.Padd + Return tDriComp.Padd + Case sKey.DRI.Pe + Return tDriComp.Pe + Case sKey.DRI.VairVres + Return tDriComp.VairVres + Case sKey.DRI.VairBeta + Return tDriComp.VairBeta + Case sKey.DRI.s + Return tDriComp.s + Case sKey.DRI.StopTime + Return tDriComp.StopTime + Case sKey.DRI.Torque + Return tDriComp.Torque + Case sKey.DRI.Alt + Return tDriComp.Alt + Case Else + Return tDriComp.Undefined + + End Select + End Function + + Public Function fAuxComp(ByVal sK As String) As tAuxComp + Dim x As Integer + sK = Trim(UCase(sK)) + + x = sK.IndexOf("_") + + If x = -1 Then Return tAuxComp.Undefined + + sK = Left(sK, x + 1) + + Select Case sK + Case sKey.PauxSply + Return tAuxComp.Psupply + Case Else + Return tAuxComp.Undefined + End Select + + End Function + + + Public Function fCompSubStr(ByVal sK As String) As String + Dim x As Integer + + sK = Trim(UCase(sK)) + + x = sK.IndexOf("_") + + If x = -1 Then Return "" + + sK = Right(sK, Len(sK) - x - 1) + + x = CShort(sK.IndexOf(">")) + + If x = -1 Then Return "" + + sK = Left(sK, x) + + Return sK + + End Function + + +#End Region + +#Region "Typ > Name Conversion" + + Public Function ConvLoading(ByVal load As tLoading) As String + Select Case load + Case tLoading.FullLoaded + Return "Full Loading" + + Case tLoading.RefLoaded + Return "Reference Loading" + + Case tLoading.EmptyLoaded + Return "Empty Loading" + + Case Else ' tLoading.UserDefLoaded + Return "User-defined Loading" + + End Select + End Function + + + + Public Function ConvVehCat(ByVal VehCat As tVehCat, ByVal NiceName As Boolean) As String + Select Case VehCat + Case tVehCat.Citybus + Return "Citybus" + Case tVehCat.Coach + Return "Coach" + Case tVehCat.InterurbanBus + If NiceName Then + Return "Interurban Bus" + Else + Return "InterurbanBus" + End If + Case tVehCat.RigidTruck + If NiceName Then + Return "Rigid Truck" + Else + Return "RigidTruck" + End If + Case tVehCat.Tractor + If NiceName Then + Return "Semitrailer Truck" + Else + Return "Tractor" + End If + Case Else ' tVehCat.Undef + Return "not defined" + End Select + End Function + + Public Function ConvVehCat(ByVal VehCat As String) As tVehCat + Select Case UCase(Trim(VehCat)) + Case "CITYBUS" + Return tVehCat.Citybus + Case "COACH" + Return tVehCat.Coach + Case "INTERURBANBUS" + Return tVehCat.InterurbanBus + Case "RIGIDTRUCK" + Return tVehCat.RigidTruck + Case "TRACTOR" + Return tVehCat.Tractor + Case Else + Return tVehCat.Undef + End Select + End Function + + Public Function ConvAxleConf(ByVal AxleConf As tAxleConf) As String + Select Case AxleConf + Case tAxleConf.a4x2 + Return "4x2" + Case tAxleConf.a4x4 + Return "4x4" + Case tAxleConf.a6x2 + Return "6x2" + Case tAxleConf.a6x4 + Return "6x4" + Case tAxleConf.a6x6 + Return "6x6" + Case tAxleConf.a8x2 + Return "8x2" + Case tAxleConf.a8x4 + Return "8x4" + Case tAxleConf.a8x6 + Return "8x6" + Case Else 'tAxleConf.a8x8 + Return "8x8" + End Select + End Function + + Public Function ConvAxleConf(ByVal AxleConf As String) As tAxleConf + Select Case UCase(Trim(AxleConf)) + Case "4X2" + Return tAxleConf.a4x2 + Case "4X4" + Return tAxleConf.a4x4 + Case "6X2" + Return tAxleConf.a6x2 + Case "6X4" + Return tAxleConf.a6x4 + Case "6X6" + Return tAxleConf.a6x6 + Case "8X2" + Return tAxleConf.a8x2 + Case "8X4" + Return tAxleConf.a8x4 + Case "8X6" + Return tAxleConf.a8x6 + Case Else '"8X8" + Return tAxleConf.a8x8 + End Select + End Function + + Public Function ConvMission(ByVal Mission As tMission) As String + Select Case Mission + Case tMission.LongHaul + Return "LongHaul" + Case tMission.RegionalDelivery + Return "RegionalDelivery" + Case tMission.UrbanDelivery + Return "UrbanDelivery" + Case tMission.MunicipalUtility + Return "MunicipalUtility" + Case tMission.Construction + Return "Construction" + Case tMission.HeavyUrban + Return "HeavyUrban" + Case tMission.Urban + Return "Urban" + Case tMission.Suburban + Return "Suburban" + Case tMission.Interurban + Return "Interurban" + Case tMission.Coach + Return "Coach" + Case Else + Return "not defined" + End Select + End Function + + Public Function ConvMission(ByVal Mission As String) As tMission + Select Case Mission + Case "LongHaul" + Return tMission.LongHaul + Case "RegionalDelivery" + Return tMission.RegionalDelivery + Case "UrbanDelivery" + Return tMission.UrbanDelivery + Case "MunicipalUtility" + Return tMission.MunicipalUtility + Case "Construction" + Return tMission.Construction + Case "HeavyUrban" + Return tMission.HeavyUrban + Case "Urban" + Return tMission.Urban + Case "Suburban" + Return tMission.Suburban + Case "Interurban" + Return tMission.Interurban + Case "Coach" + Return tMission.Coach + Case Else + Return tMission.Undef + End Select + End Function + + + + Public Function CdModeConv(ByVal CdMode As tCdMode) As String + Select Case CdMode + Case tCdMode.CdOfBeta + Return "CdOfBeta" + Case tCdMode.CdOfV + Return "CdOfV" + Case Else 'tCdMode.ConstCd0 + Return "Off" + End Select + End Function + + Public Function CdModeConv(ByVal CdMode As String) As tCdMode + Select Case UCase(Trim(CdMode)) + Case "CDOFBETA" + Return tCdMode.CdOfBeta + Case "CDOFV" + Return tCdMode.CdOfV + Case Else '"OFF" + Return tCdMode.ConstCd0 + End Select + End Function + + + + Public Function RtTypeConv(ByVal RtType As tRtType) As String + Select Case RtType + Case tRtType.Primary + Return "Primary" + Case tRtType.Secondary + Return "Secondary" + Case Else 'tRtType.None + Return "None" + End Select + End Function + + Public Function RtTypeConv(ByVal RtType As String) As tRtType + Select Case UCase(Trim(RtType)) + Case "PRIMARY" + Return tRtType.Primary + Case "SECONDARY" + Return tRtType.Secondary + Case Else '"NONE" + Return tRtType.None + End Select + End Function + +#End Region + + + Public Class cLogFile + + Private LOGstream As System.IO.StreamWriter + + Public Function StartLog() As Boolean + + 'Log start + Try + LOGstream = My.Computer.FileSystem.OpenTextFileWriter(MyAppPath & "LOG.txt", True, FileFormat) + LOGstream.AutoFlush = True + WriteToLog(tMsgID.Normal, "Starting Session " & Now) + WriteToLog(tMsgID.Normal, "VECTO " & VECTOvers) + Catch ex As Exception + Return False + End Try + + Return True + + End Function + + Public Function SizeCheck() As Boolean + Dim logfDetail As IO.FileInfo + Dim BackUpError As Boolean + + 'Start new log if file size limit reached + If IO.File.Exists(MyAppPath & "LOG.txt") Then + + 'File size check + logfDetail = My.Computer.FileSystem.GetFileInfo(MyAppPath & "LOG.txt") + + 'If Log too large: Delete + If logfDetail.Length / (2 ^ 20) > Cfg.LogSize Then + + WriteToLog(tMsgID.Normal, "Starting new logfile") + LOGstream.Close() + + BackUpError = False + + Try + If IO.File.Exists(MyAppPath & "LOG_backup.txt") Then IO.File.Delete(MyAppPath & "LOG_backup.txt") + IO.File.Move(MyAppPath & "LOG.txt", MyAppPath & "LOG_backup.txt") + Catch ex As Exception + BackUpError = True + End Try + + If Not StartLog() Then Return False + + If BackUpError Then + WriteToLog(tMsgID.Err, "Failed to backup logfile! (" & MyAppPath & "LOG_backup.txt)") + Else + WriteToLog(tMsgID.Normal, "Logfile restarted. Old log saved to LOG_backup.txt") + End If + + End If + + End If + + Return True + + End Function + + Public Function CloseLog() As Boolean + Try + WriteToLog(tMsgID.Normal, "Closing Session " & Now) + LOGstream.Close() + Catch ex As Exception + Return False + End Try + + Return True + + End Function + + + Public Function WriteToLog(ByVal MsgType As tMsgID, ByVal Msg As String) As Boolean + Dim MsgTypeStr As String + + Select Case MsgType + Case tMsgID.Err + MsgTypeStr = "Error" + Case tMsgID.Warn + MsgTypeStr = "Warning" + Case Else + MsgTypeStr = "-" + End Select + + Try + LOGstream.WriteLine(Now.ToString("yyyy/MM/dd-HH:mm:ss") & vbTab & MsgTypeStr & vbTab & Msg) + Return True + Catch ex As Exception + Return False + End Try + + End Function + + + End Class + +#Region "File path functions" + + 'When no path is specified, then insert either HomeDir or MainDir Special-folders + Public Function fFileRepl(ByVal file As String, Optional ByVal MainDir As String = "") As String + + Dim ReplPath As String + + 'Trim Path + file = Trim(file) + + 'If empty file => Abort + If file = "" Then Return "" + + 'Replace sKeys + file = Microsoft.VisualBasic.Strings.Replace(file, sKey.DefVehPath & "\", MyAppPath & "Default Vehicles\", 1, -1, CompareMethod.Text) + file = Microsoft.VisualBasic.Strings.Replace(file, sKey.HomePath & "\", MyAppPath, 1, -1, CompareMethod.Text) + + 'Replace - Determine folder + If MainDir = "" Then + ReplPath = MyAppPath + Else + ReplPath = MainDir + End If + + ' "..\" => One folder-level up + Do While ReplPath.Length > 0 AndAlso Left(file, 3) = "..\" + ReplPath = fPathUp(ReplPath) + file = file.Substring(3) + Loop + + + 'Supplement Path, if not available + If fPATH(file) = "" Then + + Return ReplPath & file + + Else + Return file + End If + + End Function + + 'Path one-level-up "C:\temp\ordner1\" >> "C:\temp\" + Private Function fPathUp(ByVal Pfad As String) As String + Dim x As Int16 + + Pfad = Pfad.Substring(0, Pfad.Length - 1) + + x = Pfad.LastIndexOf("\") + + If x = -1 Then Return "" + + Return Pfad.Substring(0, x + 1) + + End Function + + 'File name without the path "C:\temp\TEST.txt" >> "TEST.txt" oder "TEST" + Public Function fFILE(ByVal Pfad As String, ByVal MitEndung As Boolean) As String + Dim x As Int16 + x = Pfad.LastIndexOf("\") + 1 + Pfad = Microsoft.VisualBasic.Right(Pfad, Microsoft.VisualBasic.Len(Pfad) - x) + If Not MitEndung Then + x = Pfad.LastIndexOf(".") + If x > 0 Then Pfad = Microsoft.VisualBasic.Left(Pfad, x) + End If + Return Pfad + End Function + + 'Filename without extension "C:\temp\TEST.txt" >> "C:\temp\TEST" + Public Function fFileWoExt(ByVal Path As String) As String + Return fPATH(Path) & fFILE(Path, False) + End Function + + 'Filename without path if Path = WorkDir or MainDir + Public Function fFileWoDir(ByVal file As String, Optional ByVal MainDir As String = "") As String + Dim path As String + + If MainDir = "" Then + path = MyAppPath + Else + path = MainDir + End If + + If UCase(fPATH(file)) = UCase(path) Then file = fFILE(file, True) + + Return file + + End Function + + 'Path alone "C:\temp\TEST.txt" >> "C:\temp\" + ' "TEST.txt" >> "" + Public Function fPATH(ByVal Pfad As String) As String + Dim x As Int16 + If Pfad Is Nothing OrElse Pfad.Length < 3 OrElse Pfad.Substring(1, 2) <> ":\" Then Return "" + x = Pfad.LastIndexOf("\") + Return Microsoft.VisualBasic.Left(Pfad, x + 1) + End Function + + 'Extension alone "C:\temp\TEST.txt" >> ".txt" + Public Function fEXT(ByVal Pfad As String) As String + Dim x As Int16 + x = Pfad.LastIndexOf(".") + If x = -1 Then + Return "" + Else + Return Microsoft.VisualBasic.Right(Pfad, Microsoft.VisualBasic.Len(Pfad) - x) + End If + End Function + + +#End Region + + +End Module + + +Public Class csKey + Public DRI As csKeyDRI + Public AUX As csKeyAux + + Public HomePath As String = "<HOME>" + Public JobPath As String = "<JOBPATH>" + Public DefVehPath As String = "<VEHDIR>" + Public NoFile As String = "<NOFILE>" + Public EmptyString As String = "<EMPTYSTRING>" + Public Break As String = "<//>" + + Public Normed As String = "NORM" + + Public PauxSply As String = "<AUX_" + + Public EngDrag As String = "<DRAG>" + + Public Sub New() + DRI = New csKeyDRI + AUX = New csKeyAux + End Sub + + Public Class csKeyDRI + Public t As String = "<T>" + Public V As String = "<V>" + Public Grad As String = "<GRAD>" + Public Alt As String = "<ALT>" + Public Gears As String = "<GEAR>" + Public nU As String = "<N>" + Public Pe As String = "<PE>" + Public Padd As String = "<PADD>" + Public VairVres As String = "<VAIR_RES>" + Public VairBeta As String = "<VAIR_BETA>" + Public s As String = "<S>" + Public StopTime As String = "<STOP>" + Public Torque As String = "<ME>" + End Class + + Public Class csKeyAux + Public Fan As String = "FAN" + Public SteerPump As String = "STP" + Public HVAC As String = "AC" + Public ElecSys As String = "ES" + Public PneumSys As String = "PS" + End Class + + +End Class + + + diff --git a/VECTO/VECTO_Types.vb b/VECTO/VECTO_Types.vb new file mode 100644 index 0000000000000000000000000000000000000000..b4b115e507cdc72f41b32c9487f846fe5a5631b2 --- /dev/null +++ b/VECTO/VECTO_Types.vb @@ -0,0 +1,181 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +''' <summary> +''' Determines how file extensions are set in the File Browser +''' </summary> +''' <remarks></remarks> +Public Enum tFbExtMode As Integer + ForceExt = 0 + MultiExt = 1 + SingleExt = 2 +End Enum + +Public Enum tWorkMsgType + StatusBar + StatusListBox + ProgBars + JobStatus + CycleStatus + InitProgBar + Abort +End Enum + +Public Enum tMsgID + NewJob + Normal + Warn + Err +End Enum + + +Public Enum tCalcResult + Err + Abort + Done +End Enum + +Public Enum tJobStatus + Running + Queued + OK + Err + Warn + Undef +End Enum + +Public Enum tDriComp + t + V + Grad + Alt + nU + Gears + Padd + Pe + VairVres + VairBeta + Undefined + s + StopTime + Torque +End Enum + +Public Enum tVehState + Cruise + Acc + Dec + Stopped +End Enum + +Public Enum tEngState + Idle + Drag + FullDrag + Load + FullLoad + Stopped + Undef +End Enum + +Public Enum tEngClutch + Closed + Opened + Slipping +End Enum + +Public Enum tAuxComp + Psupply + Undefined +End Enum + +Public Enum tCdMode + ConstCd0 = 0 + CdOfV = 1 + CdOfBeta = 2 +End Enum + +Public Enum tRtType + None = 0 + Primary = 1 + Secondary = 2 +End Enum + +Public Enum tGearbox + Manual = 0 + SemiAutomatic = 1 + Automatic = 2 + Custom = 3 +End Enum + +Public Enum tVehCat As Integer + Undef = 0 + RigidTruck = 1 + Tractor = 2 + Citybus = 3 + InterurbanBus = 4 + Coach = 5 +End Enum + +Public Enum tAxleConf As Integer + Undef = 0 + a4x2 = 1 + a4x4 = 2 + a6x2 = 3 + a6x4 = 4 + a6x6 = 5 + a8x2 = 6 + a8x4 = 7 + a8x6 = 8 + a8x8 = 9 +End Enum + +Public Enum tLoading + FullLoaded + EmptyLoaded + RefLoaded + UserDefLoaded +End Enum + +Public Enum tMission + LongHaul + RegionalDelivery + UrbanDelivery + MunicipalUtility + Construction + HeavyUrban + Urban + Suburban + Interurban + Coach + Undef +End Enum + +Public Enum tWHTCpart + Urban + Rural + Motorway +End Enum + +Public Enum tAux + Fan + SteerPump + HVAC + ElectricSys + PneumSys +End Enum + + + + + + + diff --git a/VECTO/app.config b/VECTO/app.config new file mode 100644 index 0000000000000000000000000000000000000000..a9c93aae9ddde3022eff6df6a7957fa29f8780e7 --- /dev/null +++ b/VECTO/app.config @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<configuration> + <configSections> + </configSections> + <system.diagnostics> + <sources> + <!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log --> + <source name="DefaultSource" switchName="DefaultSwitch"> + <listeners> + <add name="FileLog"/> + <!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben --> + <!--<add name="EventLog"/>--> + </listeners> + </source> + </sources> + <switches> + <add name="DefaultSwitch" value="Information"/> + </switches> + <sharedListeners> + <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> + <!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben --> + <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> --> + </sharedListeners> + </system.diagnostics> +<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> diff --git a/VECTO/cConfig.vb b/VECTO/cConfig.vb new file mode 100644 index 0000000000000000000000000000000000000000..f64fd53ee1dd9111cbca250bfd5393b78f1a4253 --- /dev/null +++ b/VECTO/cConfig.vb @@ -0,0 +1,154 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cConfig + + Public FilePath As String + + Private Const FormatVersion As Short = 2 + Private FileVersion As Short + + Public GnUfromCycle As Boolean + Public BatchMode As Boolean + Public ModOut As Boolean + Public BATCHoutpath As String 'Output path for BATCH Mode + Public BATCHoutSubD As Boolean + Public DistCorr As Boolean + Public LogSize As Single + Public AirDensity As Single + Public OpenCmd As String + Public OpenCmdName As String + + Public FuelDens As Single + Public CO2perFC As Single + + Public FirstRun As Boolean + + Public DeclMode As Boolean + + Public Sub New() + SetDefault() + End Sub + + Public Sub DeclInit() + AirDensity = cDeclaration.AirDensity + FuelDens = cDeclaration.FuelDens + CO2perFC = cDeclaration.CO2perFC + DistCorr = True + GnUfromCycle = False + End Sub + + Public Sub SetDefault() + GnUfromCycle = True + BatchMode = False + ModOut = True + BATCHoutpath = sKey.JobPath + BATCHoutSubD = False + DistCorr = True + LogSize = 2 + AirDensity = 1.2 + OpenCmd = "notepad" + OpenCmdName = "Notepad" + + FuelDens = 0.835 + CO2perFC = 3.153 + + FirstRun = True + + DeclMode = True + + End Sub + + Public Sub ConfigLOAD() + + Dim JSON As New cJSON + + SetDefault() + + If Not IO.File.Exists(FilePath) Then Exit Sub + + + If Not JSON.ReadFile(FilePath) Then GUImsg(tMsgID.Err, "Failed to load settings! Using default settings.") + + Try + + FileVersion = JSON.Content("Header")("FileVersion") + + If FileVersion < 2 Then + BatchMode = (JSON.Content("Body")("LastMode") = 1) + Else + BatchMode = JSON.Content("Body")("LastModeBatch") + End If + ModOut = JSON.Content("Body")("ModOut") + DistCorr = JSON.Content("Body")("DistCorrection") + GnUfromCycle = JSON.Content("Body")("UseGnUfromCycle") + LogSize = JSON.Content("Body")("LogSize") + BATCHoutpath = JSON.Content("Body")("BATCHoutpath") + BATCHoutSubD = JSON.Content("Body")("BATCHoutSubD") + AirDensity = JSON.Content("Body")("AirDensity") + FuelDens = JSON.Content("Body")("FuelDensity") + CO2perFC = JSON.Content("Body")("CO2perFC") + OpenCmd = JSON.Content("Body")("OpenCmd") + OpenCmdName = JSON.Content("Body")("OpenCmdName") + FirstRun = JSON.Content("Body")("FirstRun") + DeclMode = JSON.Content("Body")("DeclMode") + + + + Catch ex As Exception + + GUImsg(tMsgID.Err, "Error while loading settings!") + + End Try + + + End Sub + + Public Sub ConfigSAVE() + Dim JSON As New cJSON + Dim dic As Dictionary(Of String, Object) + + 'Header + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + JSON.Content.Add("Header", dic) + + 'Body + dic = New Dictionary(Of String, Object) + + dic.Add("LastModeBatch", BatchMode) + dic.Add("ModOut", ModOut) + dic.Add("DistCorrection", DistCorr) + dic.Add("UseGnUfromCycle", GnUfromCycle) + dic.Add("LogSize", LogSize) + dic.Add("BATCHoutpath", BATCHoutpath) + dic.Add("BATCHoutSubD", BATCHoutSubD) + dic.Add("AirDensity", AirDensity) + dic.Add("FuelDensity", FuelDens) + dic.Add("CO2perFC", CO2perFC) + dic.Add("OpenCmd", OpenCmd) + dic.Add("OpenCmdName", OpenCmdName) + dic.Add("FirstRun", FirstRun) + dic.Add("DeclMode", DeclMode) + + JSON.Content.Add("Body", dic) + + JSON.WriteFile(FilePath) + + End Sub + + +End Class + diff --git a/VECTO/cCycleKin.vb b/VECTO/cCycleKin.vb new file mode 100644 index 0000000000000000000000000000000000000000..e3ca0789b0b12c7cc34948caf6684a012314cb0a --- /dev/null +++ b/VECTO/cCycleKin.vb @@ -0,0 +1,179 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cCycleKin + + Private Const aAccThres As Single = 0.125 '[m/s2] + Private Const aDecThres As Single = -0.125 '[m/s2] + Private Const vStopThres As Single = 0.1 '[m/s] + + 'Fahrzustände in Sekunden |@@| Driving-states in seconds + Private tStop0 As Integer + Private tAcc0 As Integer + Private tDec0 As Integer + Private tCruise0 As Integer + + 'Fahrzustands-Anteile |@@| Driving-state ratios + Private pStop0 As Single + Private pAcc0 As Single + Private pDec0 As Single + Private pCruise0 As Single + + 'Acceleration parameters + Private aAvg0 As Single + Private aPos0 As Single + Private aNeg0 As Single + Private AccNoise0 As Single + + Private MyVSUMentries As List(Of cVSUMentry) + + Public Sub New() + MyVSUMentries = New List(Of cVSUMentry) + MyVSUMentries.Add(New cVSUMentry("a", "[m/s^2]")) + MyVSUMentries.Add(New cVSUMentry("a_pos", "[m/s^2]")) + MyVSUMentries.Add(New cVSUMentry("a_neg", "[m/s^2]")) + MyVSUMentries.Add(New cVSUMentry("Acc.Noise", "[m/s^2]")) + MyVSUMentries.Add(New cVSUMentry("pAcc", "[%]")) + MyVSUMentries.Add(New cVSUMentry("pDec", "[%]")) + MyVSUMentries.Add(New cVSUMentry("pCruise", "[%]")) + MyVSUMentries.Add(New cVSUMentry("pStop", "[%]")) + End Sub + + Public Function ValLine() As String + Dim s As System.Text.StringBuilder + Dim Sepp As String = "," + + s = New System.Text.StringBuilder + + s.Append(aAvg0) + s.Append(Sepp & aPos0) + s.Append(Sepp & aNeg0) + s.Append(Sepp & AccNoise0) + s.Append(Sepp & pAcc0) + s.Append(Sepp & pDec0) + s.Append(Sepp & pCruise0) + s.Append(Sepp & pStop0) + + Return s.ToString + + End Function + + + Public Sub Calc() + Dim t As Integer + Dim t1 As Integer + Dim a3save() As Single + + t1 = MODdata.tDim + + aAvg0 = 0 + aPos0 = 0 + aNeg0 = 0 + AccNoise0 = 0 + tStop0 = 0 + tAcc0 = 0 + tDec0 = 0 + tCruise0 = 0 + pStop0 = 0 + pAcc0 = 0 + pDec0 = 0 + pCruise0 = 0 + ReDim a3save(t1) + + '3s-Accel + a3save(0) = MODdata.Vh.a(0) + For t = 1 To t1 - 1 + a3save(t) = (MODdata.Vh.a(t - 1) + MODdata.Vh.a(t) + MODdata.Vh.a(t + 1)) * (1.0 / 3.0) + Next + a3save(t1) = MODdata.Vh.a(t1) + + 't_apos, t_aneg, t_cruise, t_stop + For t = 0 To t1 + 'Driving-state ratios: Stop/Acc/Dec/Cruise + If MODdata.Vh.V(t) < vStopThres Then + tStop0 += 1 + Else + Select Case a3save(t) + Case Is > aAccThres + tAcc0 += 1 + aPos0 += a3save(t) + Case Is < aDecThres + tDec0 += 1 + aNeg0 += a3save(t) + Case Else + tCruise0 += 1 + End Select + End If + 'Average-Accel + aAvg0 += MODdata.Vh.a(t) + Next + + 'a + aAvg0 /= (t1 + 1) + + 'a-pos + If tAcc0 > 0 Then aPos0 /= tAcc0 + + 'a-neg + If tDec0 > 0 Then aNeg0 /= tDec0 + + 'Acc.Noise + For t = 0 To t1 + AccNoise0 += (MODdata.Vh.a(t) - aAvg0) ^ 2 + Next + AccNoise0 = (AccNoise0 / (t1 + 1)) ^ 0.5 + + pStop0 = tStop0 / (t1 + 1) + pAcc0 = tAcc0 / (t1 + 1) + pDec0 = tDec0 / (t1 + 1) + pCruise0 = tCruise0 / (t1 + 1) + + End Sub + + Public ReadOnly Property VSUMentries As List(Of cVSUMentry) + Get + Return MyVSUMentries + End Get + End Property + + Public ReadOnly Property GetValueString(ByVal key As String) As String + Get + Select Case key + Case "a" + Return aAvg0.ToString + Case "a_pos" + Return aPos0.ToString + Case "a_neg" + Return aNeg0.ToString + Case "Acc.Noise" + Return AccNoise0.ToString + Case "pAcc" + Return pAcc0.ToString + Case "pDec" + Return pDec0.ToString + Case "pCruise" + Return pCruise0.ToString + Case "pStop" + Return pStop0.ToString + Case Else + Return "ERROR - Unknown Key '" & key & "'" + End Select + End Get + End Property + + + +End Class + + + + diff --git a/VECTO/cDEV.vb b/VECTO/cDEV.vb new file mode 100644 index 0000000000000000000000000000000000000000..0fe8d9afad509f982308e1fae40bb916c2f61f71 --- /dev/null +++ b/VECTO/cDEV.vb @@ -0,0 +1,541 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cDEV + + Public Enabled As Boolean + + Private MyOptions As Dictionary(Of String, cDEVoption) + Private iOptionsDim As Integer + + Public TCiterPrec As Single + Public TCnUstep As Single + Public TCnUstepMin As Single + + + + + '************************************************************************************************************** + '************************************************************************************************************** + '********************************* Instructions for integrating new DEV-Options ********************************* + + '1. Entry in "Sub New()" + ' + ' I) Define new cDEVoption Object with "Conf0 = New cDEVoption(ConfigType, Description, SaveInConfg, Enabled)" + ' + ' ConfigType <tDEVconfType> ...Type definition: Boolean, Integer, Single, String, menu selection (Integer) or Reference to Function + ' Description <String> ...Description of the parameters + ' SaveInConfg <Boolean> ...Whether you want to save settings for next VECTO-startup + ' Enabled <Boolean> ...Whether settings in the DEV-tab can be changed + ' + ' II) default value definition. Distinguish which ConfigType to use: + ' + ' a) ConfigType = tBoolean: + ' + ' Conf0.BoolVal = ... <Boolean> + ' + ' b) ConfigType = tSingleVal: + ' + ' Conf0.SingleVal = ... <Single> + ' + ' c) ConfigType = tStringVal: + ' + ' Conf0.StringVal = ... <String> + ' + ' d) ConfigType = tIntVal: + ' + ' Conf0.IntVal = ... <Integer> + ' + ' e) ConfigType = tAction: + ' + ' Conf0.ActionDelegate = New cDEVoption.dActionDelegate(AddressOf NameDerFunktion) + ' + ' Where NameDerFunktion is a function to call returning a <String>: "Public Function NameDerFunktion() As String" + ' + ' f) ConfigType = tContMenIndex: + ' + ' Definition of Available selection options as <String>: + ' + ' Conf0.AddMode ("select 1") + ' Conf0.AddMode ("Option 2") + ' and so forth. + ' + ' Default value definition: First choice = 0 + ' + ' Conf0.ModeIndex = ... <Integer> + + + '************************************************************************************************************** + '************************************************************************************************************** + + + + Public Sub New() + + Enabled = False + MyOptions = New Dictionary(Of String, cDEVoption) + + '***************************************************************************************** + '***************************************************************************************** + '**************************** START: Parameters Configuration '**************************** + + Dim Conf0 As cDEVoption + + 'Conf0 = New cDEVoption(tDEVconfType.tBoolean, "Kennfelderstellung mit Median") + 'Conf0.BoolVal = False + 'MyOptions.Add("KF-Median", Conf0) + + 'Conf0 = New cDEVoption(tDEVconfType.tAction, "Action Test") + 'Conf0.ActionDelegate = New cDEVoption.dActionDelegate(AddressOf Me.TestFunction) + 'MyOptions.Add("Action_Test", Conf0) + + 'Conf0 = New cDEVoption(tDEVconfType.tIntVal, "Integer Test", True, False) + 'Conf0.IntVal = 666 + 'MyOptions.Add("Integer_Test", Conf0) + + 'Conf0 = New cDEVoption(tDEVconfType.tSingleVal, "Single Test") + 'Conf0.SingleVal = 1.2345 + 'MyOptions.Add("Single_Test", Conf0) + + 'Conf0 = New cDEVoption(tDEVconfType.tStringVal, "String Test", False) + 'Conf0.StringVal = "Hallo DU!" + 'MyOptions.Add("String_Test", Conf0) + + 'Conf0 = New cDEVoption(tDEVconfType.tSelection, "Menu Test", False, False) + 'Conf0.AddMode("Mode 0") + 'Conf0.AddMode("Hugo") + 'Conf0.AddMode("Charlie") + 'Conf0.AddMode("Mode 3") + 'Conf0.ModeIndex = 3 + 'MyOptions.Add("Menu_Test", Conf0) + + + + Conf0 = New cDEVoption(tDEVconfType.tSingleVal, "TC iteration: target precision for torque ratio") + Conf0.SingleVal = 0.001 + MyOptions.Add("TCiterPrec", Conf0) + + Conf0 = New cDEVoption(tDEVconfType.tSingleVal, "TC iteration: start value for nU-step [1/min]") + Conf0.SingleVal = 100 + MyOptions.Add("TCnUstep", Conf0) + + Conf0 = New cDEVoption(tDEVconfType.tSingleVal, "TC iteration: lowest value for nU-step [1/min]") + Conf0.SingleVal = 0.01 + MyOptions.Add("TCnUstepMin", Conf0) + + '**************************** END: Parameters Configuration '***************************** + '***************************************************************************************** + '***************************************************************************************** + + iOptionsDim = MyOptions.Count - 1 + + End Sub + + 'Initialize the actual Config-Parameters from MyConfigs list + Public Sub SetOptions() + TCiterPrec = MyOptions("TCiterPrec").SingleVal + TCnUstep = MyOptions("TCnUstep").SingleVal + TCnUstepMin = MyOptions("TCnUstepMin").SingleVal + End Sub + + 'Demo for Delegate Function + Public Function TestFunction() As String + Return "OK...?" + End Function + + Public Function DEVinfo() As String + Dim s As New System.Text.StringBuilder + Dim Conf0 As KeyValuePair(Of String, cDEVoption) + + For Each Conf0 In MyOptions + + If Conf0.Value.ConfigType <> tDEVconfType.tAction Then + + s.Append(Conf0.Key & " <" & Conf0.Value.TypeString & "> (" & Conf0.Value.Description & ")") + + If Conf0.Value.ConfigType = tDEVconfType.tSelection Then + s.AppendLine("= " & Conf0.Value.ValToString & " (" & Conf0.Value.Mode & ")") + Else + s.AppendLine("= " & Conf0.Value.ValToString) + End If + + End If + + Next + + Return s.ToString + + End Function + + Public Function LoadFromFile() As Boolean + Dim file As cFile_V3 + Dim ConfigFromFile As Dictionary(Of String, String) + Dim Key As String + Dim Val As String + Dim KV As KeyValuePair(Of String, String) + + file = New cFile_V3 + + If Not file.OpenRead(MyConfPath & "DEVconfig.txt") Then Return False + + ConfigFromFile = New Dictionary(Of String, String) + + Do While Not file.EndOfFile + + Key = file.ReadLine(0) + Val = file.ReadLine(0) + + If ConfigFromFile.ContainsKey(Key) Then + GUImsg(tMsgID.Err, "Multiple definitions of DEV Config '" & Key & "' !") + Return False + End If + + ConfigFromFile.Add(Key, Val) + + Loop + + file.Close() + + For Each KV In ConfigFromFile + If Not MyOptions.ContainsKey(KV.Key) Then + GUImsg(tMsgID.Warn, "DEV Config '" & KV.Key & "' not defined!") + Else + If MyOptions(KV.Key).SaveInFile Then MyOptions(KV.Key).StringToVal(KV.Value) + End If + Next + + Return True + + End Function + + Public Function SaveToFile() As Boolean + Dim file As cFile_V3 + Dim Conf0 As KeyValuePair(Of String, cDEVoption) + + file = New cFile_V3 + + If Not file.OpenWrite(MyConfPath & "DEVconfig.txt") Then Return False + + For Each Conf0 In MyOptions + + If Conf0.Value.SaveInFile And Conf0.Value.ConfigType <> tDEVconfType.tAction Then + + If Conf0.Value.ConfigType = tDEVconfType.tSelection Then + file.WriteLine("# " & Conf0.Value.Description & " <" & Conf0.Value.TypeString & "> (" & Conf0.Value.Mode & ")") + Else + file.WriteLine("# " & Conf0.Value.Description & " <" & Conf0.Value.TypeString & ">") + End If + + file.WriteLine(Conf0.Key) + file.WriteLine(fStringOrDummySet(Conf0.Value.ValToString)) + + End If + + Next + + file.Close() + + Return True + + End Function + + Public ReadOnly Property Options As Dictionary(Of String, cDEVoption) + Get + Return MyOptions + End Get + End Property + + Public ReadOnly Property OptionsDim As Integer + Get + Return iOptionsDim + End Get + End Property + + Protected Overrides Sub Finalize() + MyBase.Finalize() + End Sub +End Class + + +Public Class cDEVoption + Private MyConfType As tDEVconfType + Private sTypeString As String + Private MyDescr As String + Private sModes As List(Of String) + Private iModesDim As Integer + Private bEnabled As Boolean + Private bSaveInFile As Boolean + + Private sValText As String + Private iIntVal As Integer + Private sSingleVal As Single + Private bBoolVal As Boolean + Private sStringVal As String + Private iModeIndex As Integer + + Private sValTextDef As String + Private sValTextDefdef As Boolean + + Public Delegate Function dActionDelegate() As String + Public ActionDelegate As dActionDelegate + + Public Sub New(ByVal ConfigType As tDEVconfType, ByVal Description As String, Optional SaveInConfg As Boolean = True, Optional ByVal Enabled As Boolean = True) + MyConfType = ConfigType + MyDescr = Description + bEnabled = Enabled + bSaveInFile = SaveInConfg + + Select Case MyConfType + Case tDEVconfType.tAction + sTypeString = "Subroutine" + Case tDEVconfType.tBoolean + sTypeString = "Boolean" + Case tDEVconfType.tSelection + sTypeString = "Selection (Int)" + Case tDEVconfType.tIntVal + sTypeString = "Integer" + Case tDEVconfType.tSingleVal + sTypeString = "Single" + Case tDEVconfType.tStringVal + sTypeString = "String" + End Select + + sModes = New List(Of String) + iModesDim = -1 + + iIntVal = 0 + sSingleVal = 0.0F + bBoolVal = False + sStringVal = "" + iModeIndex = -1 + + If MyConfType = tDEVconfType.tAction Then + sValText = "" + Else + sValText = "<undefined>" + End If + + sValTextDef = "" + sValTextDefdef = False + + End Sub + + Private Sub DefValTextDef() + sValTextDefdef = True + sValTextDef = sValText + End Sub + + Public Sub DoAction() + sValText = ActionDelegate.Invoke() + End Sub + + Public Sub AddMode(ByVal Txt As String) + sModes.Add(Txt) + iModesDim += 1 + End Sub + + Public Function StringToVal(ByVal StrExpr As String) As Boolean + + Try + Select Case MyConfType + Case tDEVconfType.tAction + '??? Darf nicht sein |@@| May not be + Return False + + Case tDEVconfType.tBoolean + BoolVal = CBool(StrExpr) + + Case tDEVconfType.tSelection + If CInt(StrExpr) > iModesDim Then + Return False + Else + ModeIndex = CInt(StrExpr) + End If + Case tDEVconfType.tIntVal + IntVal = CInt(StrExpr) + + Case tDEVconfType.tSingleVal + SingleVal = CSng(StrExpr) + + Case tDEVconfType.tStringVal + StringVal = fStringOrDummyGet(StrExpr) + + End Select + + Return True + + Catch ex As Exception + + Return False + + End Try + + End Function + + Public Function ValToString() As String + + Select Case MyConfType + Case tDEVconfType.tBoolean + Return CStr(Math.Abs(CDec(bBoolVal))) + + Case tDEVconfType.tSelection + Return iModeIndex.ToString + + Case tDEVconfType.tIntVal + Return IntVal.ToString + + Case tDEVconfType.tSingleVal + Return SingleVal.ToString + + Case Else ' tDEVconfType.tStringVal (tDEVconfType.tAction ...darf nicht sein) + Return StringVal + + End Select + + End Function + + Public ReadOnly Property ValText As String + Get + Return sValText + End Get + End Property + + Public ReadOnly Property ValTextDef As String + Get + Return sValTextDef + End Get + End Property + + Public Property IntVal As Integer + Get + Return iIntVal + End Get + Set(value As Integer) + iIntVal = value + sValText = iIntVal.ToString + If Not sValTextDefdef Then DefValTextDef() + End Set + End Property + + Public Property SingleVal As Single + Get + Return sSingleVal + End Get + Set(value As Single) + sSingleVal = value + sValText = sSingleVal.ToString + If Not sValTextDefdef Then DefValTextDef() + End Set + End Property + + Public Property BoolVal As Boolean + Get + Return bBoolVal + End Get + Set(value As Boolean) + bBoolVal = value + If bBoolVal Then + sValText = "True" + Else + sValText = "False" + End If + If Not sValTextDefdef Then DefValTextDef() + End Set + End Property + + Public Property StringVal As String + Get + Return sStringVal + End Get + Set(value As String) + sStringVal = value + sValText = ChrW(34) & sStringVal & ChrW(34) + If Not sValTextDefdef Then DefValTextDef() + End Set + End Property + + Public Property ModeIndex As Integer + Get + Return iModeIndex + End Get + Set(value As Integer) + iModeIndex = value + sValText = "(" & iModeIndex & ") " & sModes(iModeIndex) + If Not sValTextDefdef Then DefValTextDef() + End Set + End Property + + Public ReadOnly Property Modes As List(Of String) + Get + Return sModes + End Get + End Property + + Public ReadOnly Property Mode As String + Get + If iModeIndex = -1 Then + Return "<undefined>" + Else + Return sModes(iModeIndex) + End If + End Get + End Property + + Public ReadOnly Property ModesDim As Integer + Get + Return iModesDim + End Get + End Property + + Public ReadOnly Property Description As String + Get + Return MyDescr + End Get + End Property + + Public ReadOnly Property ConfigType As tDEVconfType + Get + Return MyConfType + End Get + End Property + + Public ReadOnly Property TypeString As String + Get + Return sTypeString + End Get + End Property + + Public ReadOnly Property Enabled As Boolean + Get + Return bEnabled + End Get + End Property + + Public ReadOnly Property SaveInFile As Boolean + Get + Return bSaveInFile + End Get + End Property + +End Class + +Public Enum tDEVconfType + tBoolean + tSingleVal + tStringVal + tIntVal + tAction + tSelection +End Enum + + + diff --git a/VECTO/cDeclaration.vb b/VECTO/cDeclaration.vb new file mode 100644 index 0000000000000000000000000000000000000000..d66864e72c1e010d5965e608e0311a5006e1416a --- /dev/null +++ b/VECTO/cDeclaration.vb @@ -0,0 +1,1830 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. + +Imports System.Collections.Generic +Imports iTextSharp.text.pdf +Imports System.IO + +Public Class cDeclaration + Public CurrentMission As cMission + Public CurrentLoading As tLoading + Public Missions As Dictionary(Of tMission, cMission) + Public SegmentTable As cSegmentTable + Public SegRef As cSegmentTableEntry + + Public Const SSspeed As Single = 5 + Public Const SStime As Single = 5 + Public Const SSdelay As Single = 5 + Public Const LACa As Single = -0.5 + Public Const LACvmin As Single = 50 + Public Const Overspeed As Single = 5 + Public Const Underspeed As Single = 5 + Public Const ECvmin As Single = 50 + + Public Const TqResv As Single = 20 + Public Const TqResvStart As Single = 20 + Public Const StartSpeed As Single = 2 + Public Const StartAcc As Single = 0.6 + Public Const GbInertia As Single = 0 + + Public Const RRCTr As Single = 0.00555 + Public Const FzISOTr As Single = 37500 + + Public Const AirDensity As Single = 1.188 + Public Const FuelDens As Single = 0.832 + Public Const CO2perFC As Single = 3.16 + + Public Const AuxESeff As Single = 0.7 + + Private lPT1nU As List(Of Single) + Private lPT1 As List(Of Single) + Private PT1dim As Integer + + + Public WHTCresults As Dictionary(Of tWHTCpart, Single) + Public WHTCcorrFactor As Single + + Public Report As cReport + + Public AuxTechs As Dictionary(Of tAux, List(Of String)) + Public AuxPower As Dictionary(Of String, Single) + + Private AuxFanPower As Dictionary(Of String, Dictionary(Of tMission, Single)) + + Private AuxSteerPumpPower As Dictionary(Of String, Dictionary(Of tMission, Single())) + Private AuxSteepPumpFactors As Dictionary(Of String, Single()) + + Private AuxHVACPower As Dictionary(Of String, Dictionary(Of tMission, Single)) + + Private AuxESbase As Dictionary(Of tMission, Single) + Public AuxESpower As Dictionary(Of String, Dictionary(Of tMission, Single)) + + Private AuxPSpower As Dictionary(Of String, Dictionary(Of tMission, Single)) + + + Private Wheels As Dictionary(Of String, cWheel) + Private Rims As Dictionary(Of String, cRim) + + Public Function Init() As Boolean + + Dim file As New cFile_V3 + Dim mc0 As cMission + Dim mt0 As tMission + Dim ste0 As cSegmentTableEntry + Dim line As String() + Dim i As Integer + Dim a As Integer + Dim s0 As String + Dim s As String() + Dim TrS As Single + Dim TrA As Single + Dim stl As String() + Dim First As Boolean + + Dim BodyTrWeightList As List(Of String) + Dim LoadingList As List(Of String) + Dim AxleShares As List(Of String) + Dim AxleSharesTr As List(Of String) + Dim l0 As List(Of Single) + Dim WHTCWF As List(Of String) + Dim dWHTCWF As Dictionary(Of tWHTCpart, Single) + + Dim at0 As List(Of String) + Dim AuxPower0 As Dictionary(Of tMission, Single) + Dim STEpower0 As Dictionary(Of tMission, Single()) + + Dim w0 As cWheel + Dim r0 As cRim + + 'Initialize + Missions = New Dictionary(Of tMission, cMission) + SegmentTable = New cSegmentTable + + If Not IO.Directory.Exists(MyDeclPath) Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config!") + Return False + End If + + 'Init Missionlist + mc0 = New cMission + mc0.MissionID = tMission.LongHaul + mc0.NameStr = "Long Haul" + mc0.CyclePath = MyDeclPath & "MissionCycles\Long_Haul.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.RegionalDelivery + mc0.NameStr = "Regional Delivery" + mc0.CyclePath = MyDeclPath & "MissionCycles\Regional_Delivery.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.UrbanDelivery + mc0.NameStr = "Urban Delivery" + mc0.CyclePath = MyDeclPath & "MissionCycles\Urban_Delivery.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.MunicipalUtility + mc0.NameStr = "Municipal Utility" + mc0.CyclePath = MyDeclPath & "MissionCycles\Municipal_Utility.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.Construction + mc0.NameStr = "Construction" + mc0.CyclePath = MyDeclPath & "MissionCycles\Construction.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.HeavyUrban + mc0.NameStr = "HeavyUrban" + mc0.CyclePath = MyDeclPath & "MissionCycles\Citybus_Heavy_Urban.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.Urban + mc0.NameStr = "Urban" + mc0.CyclePath = MyDeclPath & "MissionCycles\Citybus_Urban.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + + mc0 = New cMission + mc0.MissionID = tMission.Suburban + mc0.NameStr = "Suburban" + mc0.CyclePath = MyDeclPath & "MissionCycles\Citybus_Suburban.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + mc0 = New cMission + mc0.MissionID = tMission.Interurban + mc0.NameStr = "Interurban" + mc0.CyclePath = MyDeclPath & "MissionCycles\Interurban_Bus.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + + mc0 = New cMission + mc0.MissionID = tMission.Coach + mc0.NameStr = "Coach" + mc0.CyclePath = MyDeclPath & "MissionCycles\Coach.vdri" + Missions.Add(mc0.MissionID, mc0) + SegmentTable.MissionList.Add(mc0.MissionID) + + + 'Segment Table + If Not file.OpenRead(MyDeclPath & "SegmentTable.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Segment Table)!") + Return False + End If + + Try + 'Header + line = file.ReadLine + + 'Data + Do While Not file.EndOfFile + line = file.ReadLine + + If CBool(line(0)) Then + ste0 = New cSegmentTableEntry + BodyTrWeightList = New List(Of String) + LoadingList = New List(Of String) + AxleShares = New List(Of String) + AxleSharesTr = New List(Of String) + WHTCWF = New List(Of String) + + ste0.VehCat = ConvVehCat(line(1)) + + If ste0.VehCat = tVehCat.Undef Then + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Segment Table)! " & line(1) & " is no valid Vehicle Configuration.") + Return False + End If + + ste0.AxleConf = ConvAxleConf(line(2)) + + If ste0.AxleConf = tAxleConf.Undef Then + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Segment Table)! " & line(2) & " is no valid Axle Configuration.") + Return False + End If + + ste0.MinGVW = CSng(line(3)) + ste0.MaxGVW = CSng(line(4)) + ste0.HDVclass = line(5) + ste0.VACCfile = MyDeclPath & "VACC\" & line(6) + + For Each mt0 In SegmentTable.MissionList + If mt0 = tMission.LongHaul Then + ste0.VCDVfile.Add(mt0, MyDeclPath & "VCDV\" & line(7)) + Else + ste0.VCDVfile.Add(mt0, MyDeclPath & "VCDV\" & line(8)) + End If + Next + + AxleShares.Add(line(9)) 'Long Haul + For Each mt0 In SegmentTable.MissionList 'Other cycles + If mt0 <> tMission.LongHaul Then AxleShares.Add(line(10)) + Next + + AxleSharesTr.Add(line(11)) 'Long Haul + For Each mt0 In SegmentTable.MissionList 'Other cycles + If mt0 <> tMission.LongHaul Then AxleSharesTr.Add(line(12)) + Next + + ste0.TrailerOnlyInLongHaul = (Trim(line(11)) <> "0/0" And Trim(line(12)) = "0/0" And ste0.VehCat = tVehCat.RigidTruck) + + i = 12 + For Each mt0 In SegmentTable.MissionList + i += 1 + ste0.UseMission.Add(CBool(line(i))) + Next + For Each mt0 In SegmentTable.MissionList + i += 1 + BodyTrWeightList.Add(line(i)) + Next + For Each mt0 In SegmentTable.MissionList + i += 1 + LoadingList.Add(line(i)) + Next + + For Each mt0 In SegmentTable.MissionList + i += 1 + WHTCWF.Add(line(i)) + Next + + For i = 0 To SegmentTable.MissionList.Count - 1 + If ste0.UseMission(i) Then + ste0.Missions.Add(SegmentTable.MissionList(i)) + ste0.Loading.Add(SegmentTable.MissionList(i), LoadingList(i)) + ste0.BodyTrWeight.Add(SegmentTable.MissionList(i), BodyTrWeightList(i)) + + l0 = New List(Of Single) + For Each s0 In AxleShares(i).Split("/") + l0.Add(CSng(s0)) + Next + ste0.AxleShares.Add(SegmentTable.MissionList(i), l0) + + l0 = New List(Of Single) + + TrS = AxleSharesTr(i).Split("/")(0) + TrA = AxleSharesTr(i).Split("/")(1) + + For a = 1 To TrA + l0.Add(TrS / TrA) + Next + + ste0.AxleSharesTr.Add(SegmentTable.MissionList(i), l0) + + s = WHTCWF(i).Split("/") + dWHTCWF = New Dictionary(Of tWHTCpart, Single) + dWHTCWF.Add(tWHTCpart.Urban, CSng(s(0)) / 100) + dWHTCWF.Add(tWHTCpart.Rural, CSng(s(1)) / 100) + dWHTCWF.Add(tWHTCpart.Motorway, CSng(s(2)) / 100) + + ste0.WHTCWF.Add(SegmentTable.MissionList(i), dWHTCWF) + + End If + Next + + SegmentTable.SegTableEntries.Add(ste0) + + End If + + Loop + + file.Close() + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Segment Table)! " & ex.Message) + Return False + End Try + + + 'Aux + AuxTechs = New Dictionary(Of tAux, List(Of String)) + + + + 'Aux - Fan + AuxFanPower = New Dictionary(Of String, Dictionary(Of tMission, Single)) + + Try + + If Not file.OpenRead(MyDeclPath & "VAUX\Fan-Tech.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Fan aux config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + at0 = New List(Of String) + + Do While Not file.EndOfFile + + line = file.ReadLine + + at0.Add(line(0)) + + AuxPower0 = New Dictionary(Of tMission, Single) + + i = 0 + For Each mt0 In SegmentTable.MissionList + i += 1 + AuxPower0.Add(mt0, line(i)) + Next + + AuxFanPower.Add(line(0), AuxPower0) + Loop + + AuxTechs.Add(tAux.Fan, at0) + + file.Close() + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Fan aux config)!" & ex.Message) + Return False + End Try + + + + 'Aux - Steering Pump + AuxSteerPumpPower = New Dictionary(Of String, Dictionary(Of tMission, Single())) + AuxSteepPumpFactors = New Dictionary(Of String, Single()) + + Try + + If Not file.OpenRead(MyDeclPath & "VAUX\SP-Tech.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Steering pump config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + at0 = New List(Of String) + + Do While Not file.EndOfFile + + line = file.ReadLine + + at0.Add(line(0)) + + AuxSteepPumpFactors.Add(line(0), New Single() {CSng(line(1)), CSng(line(2)), CSng(line(3)), CSng(line(4))}) + + Loop + + file.Close() + + If Not file.OpenRead(MyDeclPath & "VAUX\SP-Table.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Steering pump config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + Do While Not file.EndOfFile + + line = file.ReadLine + + STEpower0 = New Dictionary(Of tMission, Single()) + + i = 0 + For Each mt0 In SegmentTable.MissionList + i += 1 + + If line(i) = "0" Then + STEpower0.Add(mt0, New Single() {0}) + Else + stl = line(i).Split("/") + STEpower0.Add(mt0, New Single() {CSng(stl(0)), CSng(stl(1)), CSng(stl(2)), CSng(stl(3))}) + End If + + Next + + AuxSteerPumpPower.Add(line(0), STEpower0) + + Loop + + AuxTechs.Add(tAux.SteerPump, at0) + + file.Close() + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Steering pump config)!" & ex.Message) + Return False + End Try + + + 'Aux - HVAC + AuxHVACPower = New Dictionary(Of String, Dictionary(Of tMission, Single)) + + Try + + If Not file.OpenRead(MyDeclPath & "VAUX\HVAC-Table.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (HVAC config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + Do While Not file.EndOfFile + + line = file.ReadLine + + AuxPower0 = New Dictionary(Of tMission, Single) + + i = 0 + For Each mt0 In SegmentTable.MissionList + i += 1 + AuxPower0.Add(mt0, line(i)) + Next + + AuxHVACPower.Add(line(0), AuxPower0) + + Loop + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (HVAC config)!" & ex.Message) + Return False + End Try + + at0 = New List(Of String) + at0.Add("Default") + AuxTechs.Add(tAux.HVAC, at0) + + + 'Aux - Electric System + AuxESbase = New Dictionary(Of tMission, Single) + AuxESpower = New Dictionary(Of String, Dictionary(Of tMission, Single)) + + Try + + If Not file.OpenRead(MyDeclPath & "VAUX\ES-Tech.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Electric system config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + First = True + Do While Not file.EndOfFile + + line = file.ReadLine + + AuxPower0 = New Dictionary(Of tMission, Single) + + i = 0 + For Each mt0 In SegmentTable.MissionList + i += 1 + AuxPower0.Add(mt0, line(i)) + Next + + If First Then + AuxESbase = AuxPower0 + First = False + Else + AuxESpower.Add(line(0), AuxPower0) + End If + + Loop + + file.Close() + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Electric system config)!" & ex.Message) + Return False + End Try + + at0 = New List(Of String) + at0.Add("Custom Technology List") + AuxTechs.Add(tAux.ElectricSys, at0) + + + + + + 'Aux - Pneumatic System + AuxPSpower = New Dictionary(Of String, Dictionary(Of tMission, Single)) + + Try + + If Not file.OpenRead(MyDeclPath & "VAUX\PS-Table.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Pneumatic system config)!") + Return False + End If + + 'Skip Header + file.ReadLine() + + Do While Not file.EndOfFile + + line = file.ReadLine + + AuxPower0 = New Dictionary(Of tMission, Single) + + i = 0 + For Each mt0 In SegmentTable.MissionList + i += 1 + AuxPower0.Add(mt0, line(i)) + Next + + AuxPSpower.Add(line(0), AuxPower0) + + Loop + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Pneumatic system config)!" & ex.Message) + Return False + End Try + + at0 = New List(Of String) + at0.Add("Default") + AuxTechs.Add(tAux.PneumSys, at0) + + + + + + 'Default PT1 values + lPT1nU = New List(Of Single) + lPT1 = New List(Of Single) + PT1dim = -1 + + If Not file.OpenRead(MyDeclPath & "PT1.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (PT1 table)!") + Return False + End If + + Try + + Do While Not file.EndOfFile + line = file.ReadLine + PT1dim += 1 + lPT1nU.Add(CDbl(line(0))) + lPT1.Add(CDbl(line(1))) + Loop + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (PT1 table)!" & ex.Message) + Return False + End Try + + file.Close() + + + + 'Wheels + Wheels = New Dictionary(Of String, cWheel) + + If Not file.OpenRead(MyDeclPath & "wheels.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Wheels table)!") + Return False + End If + + Try + + Do While Not file.EndOfFile + line = file.ReadLine + + w0 = New cWheel + w0.Inertia = CSng(line(1)) + w0.Diam = CSng(line(2)) + w0.SizeA = (CInt(line(3)) = 1) + + Wheels.Add(line(0), w0) + + Loop + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Wheels table)!" & ex.Message) + Return False + End Try + + file.Close() + + + + 'Rims + Rims = New Dictionary(Of String, cRim) + + If Not file.OpenRead(MyDeclPath & "rims.csv") Then + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Rims table)!") + Return False + End If + + Try + + Do While Not file.EndOfFile + line = file.ReadLine + + r0 = New cRim + r0.Fa = CSng(line(1)) + r0.Fb = CSng(line(2)) + + Rims.Add(line(0), r0) + + Loop + + Catch ex As Exception + file.Close() + GUImsg(tMsgID.Err, "Failed to load Declaration Config (Rims table)!" & ex.Message) + Return False + End Try + + file.Close() + + + + GUImsg(tMsgID.Normal, "Declaration Config loaded.") + + Return True + + End Function + + Public Function EngInertia(ByVal Displ As Single) As Single + Return 1.3 + 0.41 + 0.27 * (Displ / 1000) + End Function + + Public Function TracInt(ByVal Gearbox As tGearbox) As Single + Select Case Gearbox + Case tGearbox.Manual + Return 2 + + Case tGearbox.SemiAutomatic + Return 1 + + Case Else 'tGearbox.Automatic + Return 0.8 + + End Select + End Function + + Public Function SkipGears(ByVal Gearbox As tGearbox) As Boolean + If Gearbox = tGearbox.Automatic Then + Return False + Else + Return True + End If + End Function + + Public Function ShiftInside(ByVal Gearbox As tGearbox) As Boolean + If Gearbox = tGearbox.SemiAutomatic Then + Return True + Else + Return False + End If + End Function + + Public Function ShiftTime(ByVal Gearbox As tGearbox) As Single + Select Case Gearbox + Case tGearbox.Manual + Return 3 + + Case tGearbox.SemiAutomatic + Return 2 + + Case Else 'tGearbox.Automatic + Return 2 + + End Select + End Function + + Public Function WheelsInertia(ByVal Wheel As String) As Single + + If Wheels.ContainsKey(Wheel) Then + Return Wheels(Wheel).Inertia + Else + Return -1 + End If + + End Function + + Public Function rdyn(ByVal Wheel As String, ByVal Rim As String) As Single + Dim F As Single + Dim w As cWheel + + If Not Wheels.ContainsKey(Wheel) Then + Return -1 + End If + + + If Not Rims.ContainsKey(Rim) Then + Return -1 + End If + + w = Wheels(Wheel) + + If w.SizeA Then + F = Rims(Rim).Fa + Else + F = Rims(Rim).Fb + End If + + Return (F * w.Diam) / (2 * Math.PI) + + End Function + + Public ReadOnly Property WheelsList As Dictionary(Of String, cWheel).KeyCollection + Get + Return Wheels.Keys + End Get + End Property + + Public ReadOnly Property RimsList As Dictionary(Of String, cRim).KeyCollection + Get + Return Rims.Keys + End Get + End Property + + Public Function ConvPicPath(ByVal HDVclass As String, ByVal LongHaul As Boolean) As String + + Select Case HDVclass + + Case 1, 2, 3 + Return MyDeclPath & "Reports\4x2r.png" + + Case 4 + If LongHaul Then + Return MyDeclPath & "Reports\4x2rt.png" + Else + Return MyDeclPath & "Reports\4x2r.png" + End If + + Case 5 + Return MyDeclPath & "Reports\4x2tt.png" + + Case 9 + If LongHaul Then + Return MyDeclPath & "Reports\6x2rt.png" + Else + Return MyDeclPath & "Reports\6x2r.png" + End If + + Case 10 + Return MyDeclPath & "Reports\6x2tt.png" + + Case Else + Return MyDeclPath & "Reports\Undef.png" + + End Select + + End Function + + + Public Function SetRef() As Boolean + Return SegmentTable.SetRef(SegRef, VEH.VehCat, VEH.AxleConf, VEH.MassMax) + End Function + + + ''' <summary> + ''' Init Vehicle for current mission. Must happen before setting loading in CalcInitLoad + ''' </summary> + ''' <param name="CycleIndex"></param> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function CalcInitCycle(ByVal CycleIndex As Integer) As Boolean + + CurrentMission = Missions(SegRef.Missions(CycleIndex)) + + WHTCcorrFactor = Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Urban) * ENG.WHTCurban / Declaration.WHTCresults(tWHTCpart.Urban) _ + + Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Rural) * ENG.WHTCrural / Declaration.WHTCresults(tWHTCpart.Rural) _ + + Declaration.SegRef.WHTCWF(Declaration.CurrentMission.MissionID)(tWHTCpart.Motorway) * ENG.WHTCmw / Declaration.WHTCresults(tWHTCpart.Motorway) + + + If Not VEH.DeclInit Then Return False + + Return True + + End Function + + ''' <summary> + ''' Set Loading. Mission-based initialisation (CalcInitCycle) must already be done before running this. + ''' </summary> + ''' <param name="Loading"></param> + ''' <returns></returns> + ''' <remarks></remarks> + Public Function CalcInitLoad(ByVal Loading As tLoading) As Boolean + Dim MsgSrc As String + Dim U As Single + Dim F As Single + Dim B As Single + Dim S As Single + Dim fU As Single + Dim fF As Single + Dim fB As Single + Dim fS As Single + Dim sl As Single() + Dim Result As Boolean + Dim ESsum As Single + Dim EStech As String + + MsgSrc = "DeclInit" + + CurrentLoading = Loading + + If Not VEH.DeclInitLoad(Loading) Then Return False + + 'AuxPower + AuxPower = New Dictionary(Of String, Single) + + Result = True + + 'Fan + Try + AuxPower.Add(sKey.AUX.Fan, AuxFanPower(VEC.AuxPaths(sKey.AUX.Fan).TechStr)(CurrentMission.MissionID) / 1000) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to initialise fan! " & ex.Message, MsgSrc) + Result = False + End Try + + 'Steering pump + Try + sl = AuxSteerPumpPower(SegRef.HDVclass)(CurrentMission.MissionID) + U = sl(0) + F = sl(1) + B = sl(2) + S = sl(3) + sl = AuxSteepPumpFactors(VEC.AuxPaths(sKey.AUX.SteerPump).TechStr) + fU = sl(0) + fF = sl(1) + fB = sl(2) + fS = sl(3) + AuxPower.Add(sKey.AUX.SteerPump, (U * fU + F * fF + B * fB + S * fS) / 1000) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to initialise steering pump! " & ex.Message, MsgSrc) + Result = False + End Try + + 'HVAC + Try + AuxPower.Add(sKey.AUX.HVAC, AuxHVACPower(SegRef.HDVclass)(CurrentMission.MissionID) / 1000) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to initialise HVAC! " & ex.Message, MsgSrc) + Result = False + End Try + + 'Electric System + Try + + ESsum = AuxESbase(CurrentMission.MissionID) + + For Each EStech In VEC.EStechs + + If Not AuxESpower.ContainsKey(EStech) Then + WorkerMsg(tMsgID.Err, "Electric system '" & EStech & "' is not supported! ", MsgSrc) + Result = False + End If + + ESsum -= AuxESpower(EStech)(CurrentMission.MissionID) + + Next + + AuxPower.Add(sKey.AUX.ElecSys, ESsum / (1000 * AuxESeff)) + + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to initialise electric system! " & ex.Message, MsgSrc) + Result = False + End Try + + + 'PS + Try + AuxPower.Add(sKey.AUX.PneumSys, AuxPSpower(SegRef.HDVclass)(CurrentMission.MissionID) / 1000) + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Failed to initialise pneumatic system! " & ex.Message, MsgSrc) + Result = False + End Try + + + Return Result + + End Function + + Public Function PT1(ByVal nU As Single) As Single + Dim i As Int32 + + 'Extrapolation for x < x(1) + If lPT1nU(0) >= nU Then + i = 1 + GoTo lbInt + End If + + i = 0 + Do While lPT1nU(i) < nU And i < PT1dim + i += 1 + Loop + +lbInt: + 'Interpolation + Return (nU - lPT1nU(i - 1)) * (lPT1(i) - lPT1(i - 1)) / (lPT1nU(i) - lPT1nU(i - 1)) + lPT1(i - 1) + + End Function + + Public Sub ReportInit() + + Report = New cReport + + With Report + .Filepath = fFileWoExt(JobFile) & ".pdf" + .HDVclassStr = SegRef.HDVclass + .VehCat = SegRef.VehCat + .AxleConf = SegRef.AxleConf + .MassMaxStr = VEH.MassMax & "t" + .JobFile = fFILE(JobFile, True) + .DateStr = Now.ToString + .Creator = Lic.LicString + .EngStr = (ENG.Displ / 1000).ToString("0.0") & " l " & Math.Round(ENG.Pmax, 0).ToString("#") & " kW" + .EngModelStr = ENG.ModelName + .GbxStr = GBX.GearCount & "-Speed " & GearboxConv(GBX.gs_Type) + .GbxModelStr = GBX.ModelName + End With + + End Sub + + Public Sub ReportAddCycle() + Dim mr As New cReport.cMissionResults + + mr.MissionRef = CurrentMission + + Report.CurrentMR = mr + Report.MissionResults.Add(mr) + + End Sub + + Public Sub ReportAddResults() + Dim lr As New cReport.cLoadingResults + Dim t1 As Integer + Dim t As Integer + Dim Vquer As Single + Dim sum As Double + Dim d As Double + + t1 = MODdata.tDim + + 'Average Speed calculation + sum = 0 + For t = 0 To t1 + sum += MODdata.Vh.V(t) + Next + Vquer = 3.6 * sum / (t1 + 1) + + With lr + + .Loading = VEH.Loading / 1000 + .Speed = Vquer + .FCkm = (100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000) + .CO2km = Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer) + If VEH.Loading > 0 Then + .FCtkm = .FCkm / .Loading + .CO2tkm = .CO2km / .Loading + End If + .FCerror = MODdata.FCerror + + d = 0 + MODdata.Vh.AltIntp(d, True) + For t = 0 To t1 + .ActualSpeed.Add(MODdata.Vh.V(t) * 3.6) + .TargetSpeed.Add(MODdata.Vh.Vsoll(t) * 3.6) + d += MODdata.Vh.V(t) + .Distance.Add(CSng(d / 1000)) + .Alt.Add(MODdata.Vh.AltIntp(d, False)) + .nU.Add(MODdata.nU(t)) + .Tq.Add(nPeToM(MODdata.nU(t), MODdata.Pe(t))) + Next + + End With + + Report.CurrentMR.Results.Add(CurrentLoading, lr) + + End Sub + + Public Function WriteReport() As Boolean + + Report.CreateCharts() + + Return Report.WritePdfs + + + End Function + + + Public Function WHTCinit() As Boolean + Dim path As String + Dim file As New cFile_V3 + Dim line As String() + Dim nU As Single + Dim Tq As Single + Dim MsgSrc As String + + MsgSrc = "WHTCcor/Init" + + path = MyDeclPath & "WHTC.csv" + If Not file.OpenRead(path) Then + WorkerMsg(tMsgID.Err, "Failed to load WHTC cycle!", MsgSrc) + Return False + End If + + DRI = New cDRI + DRI.Values = New Dictionary(Of tDriComp, List(Of Double)) + DRI.Values.Add(tDriComp.nU, New List(Of Double)) + DRI.Values.Add(tDriComp.Pe, New List(Of Double)) + DRI.Nvorg = True + DRI.Pvorg = True + + 'Skip header + file.ReadLine() + + Do While Not file.EndOfFile + line = file.ReadLine + + nU = line(1) + Tq = line(2) + + 'Denorm + nU = nU * 0.01 * (0.45 * FLD(0).Nlo + 0.45 * FLD(0).Npref + 0.1 * FLD(0).Nhi - ENG.Nidle) * 2.0327 + ENG.Nidle + + If Tq < 0 Then + Tq = -90000000000.0 + Else + Tq = Tq * 0.01 * (FLD(0).Tq(nU)) + End If + + DRI.Values(tDriComp.nU).Add(nU) + DRI.Values(tDriComp.Pe).Add(nMtoPe(nU, Tq)) + + Loop + + DRI.tDim = DRI.Values(tDriComp.nU).Count - 1 + + Return True + + End Function + + Public Sub WHTCcorrCalc() + Dim sum As Double + Dim Psum As Double + Dim i As Integer + Dim FC As List(Of Single) + Dim MsgSrc As String + + MsgSrc = "WHTCcor/Calc" + + WHTCresults = New Dictionary(Of tWHTCpart, Single) + + FC = MODdata.lFC + + + 'Urban + sum = 0 + Psum = 0 + For i = 0 To 899 + sum += FC(i) + Psum += Math.Max(0, MODdata.Pe(i)) + Next + WHTCresults.Add(tWHTCpart.Urban, sum / Psum) + WorkerMsg(tMsgID.Normal, " > Urban: " & (sum / Psum).ToString("0.0") & " [g/kWh]", MsgSrc) + + 'Rural + sum = 0 + Psum = 0 + For i = 900 To 1379 + sum += FC(i) + Psum += Math.Max(0, MODdata.Pe(i)) + Next + WHTCresults.Add(tWHTCpart.Rural, sum / Psum) + WorkerMsg(tMsgID.Normal, " > Rural: " & (sum / Psum).ToString("0.0") & " [g/kWh]", MsgSrc) + + 'Motorway + sum = 0 + Psum = 0 + For i = 1380 To 1799 + sum += FC(i) + Psum += Math.Max(0, MODdata.Pe(i)) + Next + WHTCresults.Add(tWHTCpart.Motorway, sum / Psum) + WorkerMsg(tMsgID.Normal, " > Motorway: " & (sum / Psum).ToString("0.0") & " [g/kWh]", MsgSrc) + + + End Sub + +End Class + +Public Class cWheel + Public Inertia As Single + Public Diam As Single + Public SizeA As Boolean +End Class + +Public Class cRim + Public Fa As Single + Public Fb As Single +End Class + +Public Class cMission + Public MissionID As tMission + Public NameStr As String + Public CyclePath As String +End Class + +Public Class cSegmentTable + Public SegTableEntries As New List(Of cSegmentTableEntry) + Public MissionList As New List(Of tMission) + + Public Function SetRef(ByRef SegTableEntryRef As cSegmentTableEntry, ByVal VehCat As tVehCat, ByVal AxleConf As tAxleConf, ByVal MaxMass As Single) As Boolean + Dim s0 As cSegmentTableEntry + + For Each s0 In SegTableEntries + If s0.VehCat = VehCat And s0.AxleConf = AxleConf And s0.MaxGVW > MaxMass And s0.MinGVW <= MaxMass Then + SegTableEntryRef = s0 + Return True + End If + Next + + SegTableEntryRef = Nothing + Return False + + End Function + +End Class + +Public Class cSegmentTableEntry + Public VehCat As tVehCat + Public AxleConf As tAxleConf + Public MinGVW As Single + Public MaxGVW As Single + Public VehClass As String + Public Missions As New List(Of tMission) + Public UseMission As New List(Of Boolean) + Public HDVclass As String + Public VACCfile As String + Public VCDVfile As New Dictionary(Of tMission, String) + Public BodyTrWeight As New Dictionary(Of tMission, String) + Public Loading As New Dictionary(Of tMission, String) + Public AxleShares As New Dictionary(Of tMission, List(Of Single)) + Public AxleSharesTr As New Dictionary(Of tMission, List(Of Single)) + Public WHTCWF As New Dictionary(Of tMission, Dictionary(Of tWHTCpart, Single)) + Public TrailerOnlyInLongHaul As Boolean + + Public Function GetCycles() As List(Of String) + Dim l As New List(Of String) + Dim m As tMission + + For Each m In Missions + l.Add(Declaration.Missions(m).CyclePath) + Next + + Return l + + End Function + + Public Function GetBodyTrWeight(ByVal Mission As tMission) As Single + + 'Check if Config is valid + If BodyTrWeight.ContainsKey(Mission) AndAlso IsNumeric(BodyTrWeight(Mission)) Then + Return CSng(BodyTrWeight(Mission)) + Else + Return -1 + End If + + End Function + + Public Function GetLoading(ByVal Mission As tMission, ByVal MassMax As Single) As Single + + 'Check if Config is valid + If Loading.ContainsKey(Mission) Then + If Not (Loading(Mission) = "f" OrElse IsNumeric(Loading(Mission))) Then + Return -1 + End If + Else + Return -1 + End If + + 'Return Loading + If HDVclass < 4 Then + If Mission = tMission.LongHaul Then + Return 588.2 * MassMax - 2511.8 + Else + Return 394.1 * MassMax - 1705.9 + End If + Else + Return CSng(Loading(Mission)) + End If + + End Function + + + +End Class + +Public Class cReport + + Public Filepath As String = "" + Public CurrentMR As cMissionResults + Public MissionResults As List(Of cMissionResults) + Public HDVclassStr As String = "" + Public VehCat As tVehCat = tVehCat.Undef + Public AxleConf As tAxleConf = tAxleConf.Undef + Public MassMaxStr As String = "" + Public JobFile As String = "" + Public DateStr As String = "" + Public Creator As String = "" + Public EngStr As String = "" + Public EngModelStr As String = "" + Public GbxStr As String = "" + Public GbxModelStr As String = "" + + Public ChartCO2tkm As Image + Public ChartCO2speed As Image + + + Public Sub New() + MissionResults = New List(Of cMissionResults) + End Sub + + Public Sub CreateCharts() + Dim mr As cMissionResults + Dim lr As KeyValuePair(Of tLoading, cLoadingResults) + 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 i As Int16 + + 'Torque, rpm + For Each mr In MissionResults + + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + MyChart.Width = 1000 + MyChart.Height = 427 + + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(FLD(0).LnU, FLD(0).LTq) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 3 + s.Color = Color.DarkBlue + s.Name = "Full load curve" + MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(FLD(0).LnU, FLD(0).LTqDrag) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 3 + s.Color = Color.Blue + s.Name = "Drag curve" + MyChart.Series.Add(s) + + 's = New System.Windows.Forms.DataVisualization.Charting.Series + 's.Points.DataBindXY(GBX.Shiftpolygons(GBX.GearCount).gs_nUdown, GBX.Shiftpolygons(GBX.GearCount).gs_Mdown) + 's.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + 's.Color = Color.DarkGray + 's.BorderWidth = 3 + 's.Name = "Down-Shift threshold" + 'MyChart.Series.Add(s) + + 's = New System.Windows.Forms.DataVisualization.Charting.Series + 's.Points.DataBindXY(GBX.Shiftpolygons(GBX.GearCount).gs_nUup, GBX.Shiftpolygons(GBX.GearCount).gs_Mup) + 's.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + 's.Color = Color.Gray + 's.BorderWidth = 3 + 's.Name = "Up-Shift threshold" + 'MyChart.Series.Add(s) + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(mr.Results(tLoading.RefLoaded).nU, mr.Results(tLoading.RefLoaded).Tq) + s.ChartType = DataVisualization.Charting.SeriesChartType.Point + s.Color = Color.Red + s.Name = "load points (Ref. load.)" + MyChart.Series.Add(s) + + + a.Name = "main" + + a.AxisX.Title = "engine speed [1/min]" + a.AxisX.TitleFont = New Font("Helvetica", 20) + a.AxisX.LabelStyle.Font = New Font("Helvetica", 20) + a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.AxisY.Title = "engine torque [Nm]" + a.AxisY.TitleFont = New Font("Helvetica", 20) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 20) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.AxisX.Minimum = 300 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 3 + + + MyChart.ChartAreas.Add(a) + + With MyChart.ChartAreas(0) + .Position.X = 0 + .Position.Y = 0 + .Position.Width = 70 + .Position.Height = 100 + End With + + MyChart.Legends.Add("main") + MyChart.Legends(0).Font = New Font("Helvetica", 14) + MyChart.Legends(0).BorderColor = Color.Black + MyChart.Legends(0).BorderWidth = 3 + + + 'MyChart.Titles.Add("CO2 Results [g/km]") + 'MyChart.Titles(0).Font = New Font("Helvetica", 30, FontStyle.Bold) + + + + + MyChart.Update() + + mr.ChartTqN = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(mr.ChartTqN, New Rectangle(0, 0, mr.ChartTqN.Size.Width, mr.ChartTqN.Size.Height)) + + Next + + 'Speed over distance + For Each mr In MissionResults + + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + MyChart.Width = 2000 + MyChart.Height = 400 + + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + + 'Altitude + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(mr.Results(tLoading.RefLoaded).Distance, mr.Results(tLoading.RefLoaded).Alt) + s.ChartType = DataVisualization.Charting.SeriesChartType.Area + s.Color = Color.Lavender + s.Name = "Altitude" + s.YAxisType = DataVisualization.Charting.AxisType.Secondary + MyChart.Series.Add(s) + + 'Target speed + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(mr.Results(tLoading.RefLoaded).Distance, mr.Results(tLoading.RefLoaded).TargetSpeed) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 3 + s.Name = "Target speed" + MyChart.Series.Add(s) + + For Each lr In mr.Results + + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(lr.Value.Distance, lr.Value.ActualSpeed) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.Name = ConvLoading(lr.Key) + MyChart.Series.Add(s) + + Next + + a.Name = "main" + + a.AxisX.Title = "distance [km]" + a.AxisX.TitleFont = New Font("Helvetica", 16) + a.AxisX.LabelStyle.Font = New Font("Helvetica", 16) + a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisX.LabelStyle.Format = "0.0" + + a.AxisY.Title = "vehicle speed [km/h]" + a.AxisY.TitleFont = New Font("Helvetica", 16) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 16) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.AxisY2.Title = "altitude [m]" + a.AxisY2.TitleFont = New Font("Helvetica", 16) + a.AxisY2.LabelStyle.Font = New Font("Helvetica", 16) + a.AxisY2.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisY2.MinorGrid.Enabled = False + a.AxisY2.MajorGrid.Enabled = False + + a.AxisX.Minimum = 0 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 3 + + MyChart.ChartAreas.Add(a) + + With MyChart.ChartAreas(0) + .Position.X = 0 + .Position.Y = 0 + .Position.Width = 90 + .Position.Height = 100 + End With + + + MyChart.Legends.Add("main") + MyChart.Legends(0).Font = New Font("Helvetica", 14) + MyChart.Legends(0).BorderColor = Color.Black + MyChart.Legends(0).BorderWidth = 3 + 'MyChart.Legends(0).Position.Auto = False + MyChart.Legends(0).Position.X = 97 + MyChart.Legends(0).Position.Y = 3 + MyChart.Legends(0).Position.Width = 10 + MyChart.Legends(0).Position.Height = 40 + + + 'MyChart.Titles.Add("CO2 Results [g/km]") + 'MyChart.Titles(0).Font = New Font("Helvetica", 30, FontStyle.Bold) + + + + MyChart.Update() + + mr.ChartSpeed = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(mr.ChartSpeed, New Rectangle(0, 0, mr.ChartSpeed.Size.Width, mr.ChartSpeed.Size.Height)) + + Next + + 'CO2 Bars + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + + For Each mr In MissionResults + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.AddXY(mr.MissionRef.NameStr, mr.Results(tLoading.RefLoaded).CO2tkm) + 's.IsValueShownAsLabel = True + s.Points(0).Label = s.Points(0).YValues(0).ToString("0.0") & " [g/tkm]" + s.Points(0).Font = New Font("Helvetica", 20) + s.Points(0).LabelBackColor = Color.White + s.Name = mr.MissionRef.NameStr & " (Ref. load.)" + MyChart.Series.Add(s) + Next + + a.Name = "main" + + a.AxisX.Title = "Missions" + a.AxisX.TitleFont = New Font("Helvetica", 20) + a.AxisX.LabelStyle.Enabled = False + + a.AxisY.Title = "CO2 [g/tkm]" + a.AxisY.TitleFont = New Font("Helvetica", 20) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 20) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 3 + + MyChart.ChartAreas.Add(a) + + MyChart.Legends.Add("main") + MyChart.Legends(0).Font = New Font("Helvetica", 20) + MyChart.Legends(0).BorderColor = Color.Black + MyChart.Legends(0).BorderWidth = 3 + + MyChart.Width = 1500 + MyChart.Height = 700 + + MyChart.Update() + + ChartCO2tkm = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(ChartCO2tkm, New Rectangle(0, 0, ChartCO2tkm.Size.Width, ChartCO2tkm.Size.Height)) + + + 'CO2 & Speed + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + + For Each mr In MissionResults + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.MarkerSize = 15 + s.MarkerStyle = DataVisualization.Charting.MarkerStyle.Circle + s.ChartType = DataVisualization.Charting.SeriesChartType.Point + i = -1 + For Each lr In mr.Results + i += 1 + s.Points.AddXY(lr.Value.Speed, lr.Value.CO2km) + s.Points(i).Label = lr.Value.Loading.ToString("0.0") & " t" + If lr.Key = tLoading.RefLoaded Then + s.Points(i).Font = New Font("Helvetica", 16) + Else + s.Points(i).MarkerSize = 10 + s.Points(i).Font = New Font("Helvetica", 14) + End If + s.Points(i).LabelBackColor = Color.White + Next + s.Name = mr.MissionRef.NameStr + MyChart.Series.Add(s) + Next + + a.Name = "main" + + a.AxisX.Title = "vehicle speed [km/h]" + a.AxisX.TitleFont = New Font("Helvetica", 20) + a.AxisX.LabelStyle.Font = New Font("Helvetica", 20) + a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.AxisY.Title = "CO2 [g/km]" + a.AxisY.TitleFont = New Font("Helvetica", 20) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 20) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + + a.AxisX.Minimum = 20 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 3 + + MyChart.ChartAreas.Add(a) + + MyChart.Legends.Add("main") + MyChart.Legends(0).Font = New Font("Helvetica", 20) + MyChart.Legends(0).BorderColor = Color.Black + MyChart.Legends(0).BorderWidth = 3 + + 'MyChart.Titles.Add("CO2 Results [g/km]") + 'MyChart.Titles(0).Font = New Font("Helvetica", 30, FontStyle.Bold) + + MyChart.Width = 1500 + MyChart.Height = 700 + + MyChart.Update() + + ChartCO2speed = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(ChartCO2speed, New Rectangle(0, 0, ChartCO2speed.Size.Width, ChartCO2speed.Size.Height)) + + + End Sub + + Public Function WritePdfs() As Boolean + Dim pdfReader As PdfReader + Dim pdfStamper As PdfStamper + Dim PdfTemp As String = "" + Dim PdfTempMR As String = "" + Dim i As Integer + Dim pgMax As Integer + Dim imgp As iTextSharp.text.Image + Dim pdfContentByte As iTextSharp.text.pdf.PdfContentByte + Dim doc As iTextSharp.text.Document + Dim pdfpage As PdfImportedPage + Dim pdfWriter As PdfWriter + Dim mr As cMissionResults + Dim lr As KeyValuePair(Of tLoading, cLoadingResults) + Dim lstr As String = "" + Dim temppdfs As New List(Of String) + Dim temppath As String + Dim pdfFormFields As AcroFields + + Select Case MissionResults.Count + Case 2 + PdfTemp = MyDeclPath & "Reports\rep2C.pdf" + pgMax = 3 + Case 3 + PdfTemp = MyDeclPath & "Reports\rep3C.pdf" + pgMax = 4 + End Select + + PdfTempMR = MyDeclPath & "Reports\repMR.pdf" + + Try + + temppath = MyDeclPath & "Reports\temp0.pdf" + temppdfs.Add(temppath) + + pdfReader = New PdfReader(PdfTemp) + pdfStamper = New PdfStamper(pdfReader, New FileStream(temppath, FileMode.Create)) + + pdfFormFields = pdfStamper.AcroFields + + pdfFormFields.SetField("version", VECTOvers) + pdfFormFields.SetField("Job", JobFile) + pdfFormFields.SetField("Date", DateStr) + pdfFormFields.SetField("Created", Creator) + pdfFormFields.SetField("Config", MassMaxStr & " " & ConvAxleConf(AxleConf) & " " & ConvVehCat(VehCat, True)) + pdfFormFields.SetField("HDVclass", "HDV Class " & HDVclassStr) + pdfFormFields.SetField("Engine", EngStr) + pdfFormFields.SetField("EngM", EngModelStr) + pdfFormFields.SetField("Gearbox", GbxStr) + pdfFormFields.SetField("GbxM", GbxModelStr) + pdfFormFields.SetField("PageNr", "Page 1 of " & pgMax) + + i = 0 + For Each mr In MissionResults + i += 1 + pdfFormFields.SetField("Mission" & i, mr.MissionRef.NameStr) + With mr.Results(tLoading.RefLoaded) + pdfFormFields.SetField("Loading" & i, .Loading.ToString("0.0") & " t") + pdfFormFields.SetField("Speed" & i, .Speed.ToString("0.0") & " km/h") + pdfFormFields.SetField("FC" & i, .FCkm.ToString("0.0")) + pdfFormFields.SetField("FCt" & i, .FCtkm.ToString("0.0")) + pdfFormFields.SetField("CO2" & i, .CO2km.ToString("0.0")) + pdfFormFields.SetField("CO2t" & i, .CO2tkm.ToString("0.0")) + End With + Next + + + 'Add Images + pdfContentByte = pdfStamper.GetOverContent(1) + + imgp = iTextSharp.text.Image.GetInstance(ChartCO2tkm, iTextSharp.text.Color.WHITE) + imgp.ScaleAbsolute(440, 195) + imgp.SetAbsolutePosition(360, 270) + pdfContentByte.AddImage(imgp) + + imgp = iTextSharp.text.Image.GetInstance(ChartCO2speed, iTextSharp.text.Color.WHITE) + imgp.ScaleAbsolute(440, 195) + imgp.SetAbsolutePosition(360, 75) + pdfContentByte.AddImage(imgp) + + imgp = iTextSharp.text.Image.GetInstance(Declaration.ConvPicPath(HDVclassStr, True)) + imgp.ScaleAbsolute(180, 50) + imgp.SetAbsolutePosition(30, 475) + pdfContentByte.AddImage(imgp) + + ' flatten the form to remove editting options, set it to false to leave the form open to subsequent manual edits + pdfStamper.FormFlattening = True + + ' close the pdf + pdfStamper.Close() + + + i = 0 + For Each mr In MissionResults + i += 1 + + temppath = MyDeclPath & "Reports\temp" & i & ".pdf" + temppdfs.Add(temppath) + + pdfReader = New PdfReader(PdfTempMR) + pdfStamper = New PdfStamper(pdfReader, New FileStream(temppath, FileMode.Create)) + + pdfFormFields = pdfStamper.AcroFields + + pdfFormFields.SetField("version", VECTOvers) + pdfFormFields.SetField("Job", JobFile) + pdfFormFields.SetField("Date", DateStr) + pdfFormFields.SetField("Created", Creator) + pdfFormFields.SetField("Config", MassMaxStr & " " & ConvAxleConf(AxleConf) & " " & ConvVehCat(VehCat, True)) + pdfFormFields.SetField("HDVclass", "HDV Class " & HDVclassStr) + pdfFormFields.SetField("PageNr", "Page " & i + 1 & " of " & pgMax) + + pdfFormFields.SetField("Mission", mr.MissionRef.NameStr) + + For Each lr In mr.Results + + Select Case lr.Key + Case tLoading.EmptyLoaded + lstr = "E" + Case tLoading.RefLoaded + lstr = "R" + Case tLoading.FullLoaded + lstr = "F" + Case Else + Return False + End Select + + With lr.Value + pdfFormFields.SetField("Load" & lstr, .Loading.ToString("0.0") & " t") + pdfFormFields.SetField("Speed" & lstr, .Speed.ToString("0.0")) + pdfFormFields.SetField("FCkm" & lstr, .FCkm.ToString("0.0")) + If .Loading = 0 Then + pdfFormFields.SetField("FCtkm" & lstr, "-") + pdfFormFields.SetField("CO2tkm" & lstr, "-") + Else + pdfFormFields.SetField("FCtkm" & lstr, .FCtkm.ToString("0.0")) + pdfFormFields.SetField("CO2tkm" & lstr, .CO2tkm.ToString("0.0")) + End If + pdfFormFields.SetField("CO2km" & lstr, .CO2km.ToString("0.0")) + End With + + Next + + 'Add Images + pdfContentByte = pdfStamper.GetOverContent(1) + + imgp = iTextSharp.text.Image.GetInstance(Declaration.ConvPicPath(HDVclassStr, (mr.MissionRef.MissionID = tMission.LongHaul))) + imgp.ScaleAbsolute(180, 50) + imgp.SetAbsolutePosition(600, 475) + pdfContentByte.AddImage(imgp) + + imgp = iTextSharp.text.Image.GetInstance(mr.ChartSpeed, iTextSharp.text.Color.WHITE) + imgp.ScaleAbsolute(780, 156) + imgp.SetAbsolutePosition(17, 270) + pdfContentByte.AddImage(imgp) + + imgp = iTextSharp.text.Image.GetInstance(mr.ChartTqN, iTextSharp.text.Color.WHITE) + imgp.ScaleAbsolute(420, 178) + imgp.SetAbsolutePosition(375, 75) + pdfContentByte.AddImage(imgp) + + ' flatten the form to remove editting options, set it to false to leave the form open to subsequent manual edits + pdfStamper.FormFlattening = True + + ' close the pdf + pdfStamper.Close() + + Next + + 'Merge files + doc = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate, 12, 12, 12, 12) + + pdfWriter = pdfWriter.GetInstance(doc, New FileStream(Filepath, FileMode.Create)) + + doc.Open() + + For Each temppath In temppdfs + pdfReader = New PdfReader(temppath) + pdfpage = pdfWriter.GetImportedPage(pdfReader, 1) + doc.Add(iTextSharp.text.Image.GetInstance(pdfpage)) + Next + + doc.Close() + + 'Delete temp files + For Each temppath In temppdfs + IO.File.Delete(temppath) + Next + + Catch ex As Exception + + Return False + + End Try + + + + Return True + + + End Function + + + Public Class cMissionResults + + Public Results As Dictionary(Of tLoading, cLoadingResults) + + Public MissionRef As cMission + + Public ChartSpeed As Image + Public ChartTqN As Image + + + Public Sub New() + Results = New Dictionary(Of tLoading, cLoadingResults) + End Sub + + + + End Class + + Public Class cLoadingResults + Public Loading As Single = 0 + Public Speed As Single = 0 + Public FCkm As Single = 0 + Public FCtkm As Single = 0 + Public CO2km As Single = 0 + Public CO2tkm As Single = 0 + Public FCerror As Boolean = False + + Public TargetSpeed As List(Of Single) + Public ActualSpeed As List(Of Single) + Public Distance As List(Of Single) + Public Alt As List(Of Single) + Public Tq As List(Of Single) + Public nU As List(Of Single) + + + Public Sub New() + TargetSpeed = New List(Of Single) + ActualSpeed = New List(Of Single) + Distance = New List(Of Single) + Alt = New List(Of Single) + Tq = New List(Of Single) + nU = New List(Of Single) + End Sub + + + + + End Class + + +End Class + diff --git a/VECTO/cDelaunayMap.vb b/VECTO/cDelaunayMap.vb new file mode 100644 index 0000000000000000000000000000000000000000..d25f29edf6e8abc85b46813d48fe1333363b3172 --- /dev/null +++ b/VECTO/cDelaunayMap.vb @@ -0,0 +1,493 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Public Class cDelaunayMap + + Public ptDim As Integer + + Public ptList As List(Of dPoint) + Private lDT As List(Of dTriangle) + Private planes As List(Of Double()) + + Public DualMode As Boolean + Private ptListXZ As List(Of dPoint) + Private planesXZ As List(Of Double()) + Private lDTXZ As List(Of dTriangle) + + Public ExtrapolError As Boolean + + + Public Sub New() + ptList = New List(Of dPoint) + ptListXZ = New List(Of dPoint) + DualMode = False + End Sub + + Public Sub AddPoints(ByVal X As Double, ByVal Y As Double, ByVal Z As Double) + ptList.Add(New dPoint(X, Y, Z)) + If DualMode Then ptListXZ.Add(New dPoint(X, Z, Y)) + End Sub + + Public Function Triangulate() As Boolean + Dim tr As dTriangle + Dim DT As dTriangulation + + ptDim = ptList.Count - 1 + + 'XY-triangulation + Try + DT = New dTriangulation + lDT = DT.Triangulate(ptList) + Catch ex As Exception + Return False + End Try + + planes = New List(Of Double()) + + For Each tr In lDT + planes.Add(GetPlane(tr)) + Next + + + + '#If DEBUG Then + ' Dim i As Int16 + ' Debug.Print("#,x1,y1,z1,x2,y2,z2") + ' i = -1 + ' For Each tr In lDT + ' i += 1 + ' Debug.Print(i & "," & tr.P1.X & "," & tr.P1.Y & "," & tr.P1.Z & "," & tr.P2.X & "," & tr.P2.Y & "," & tr.P2.Z) + ' Debug.Print(i & "," & tr.P3.X & "," & tr.P3.Y & "," & tr.P3.Z & "," & tr.P2.X & "," & tr.P2.Y & "," & tr.P2.Z) + ' Debug.Print(i & "," & tr.P1.X & "," & tr.P1.Y & "," & tr.P1.Z & "," & tr.P3.X & "," & tr.P3.Y & "," & tr.P3.Z) + ' Next + '#End If + + + + 'XZ-triangulation + If DualMode Then + + If ptDim <> ptListXZ.Count - 1 Then Return False + + Try + DT = New dTriangulation + lDTXZ = DT.Triangulate(ptListXZ) + Catch ex As Exception + Return False + End Try + + planesXZ = New List(Of Double()) + + For Each tr In lDTXZ + planesXZ.Add(GetPlane(tr)) + Next + + End If + + Return True + + End Function + + 'XY => Z Interpolation + Public Function Intpol(ByVal x As Double, ByVal y As Double) As Double + Dim j As Integer + Dim l0 As Double() + Dim tr As dTriangle + + ExtrapolError = False + + 'Try exact solution for IsInside() + j = -1 + For Each tr In lDT + j += 1 + If IsInside(tr, x, y, True) Then + l0 = planes(j) + Return (l0(3) - x * l0(0) - y * l0(1)) / l0(2) + End If + Next + + 'Try approx. solution (fixes rounding errors when points lies exactly on an edge of a triangle) + j = -1 + For Each tr In lDT + j += 1 + If IsInside(tr, x, y, False) Then + l0 = planes(j) + Return (l0(3) - x * l0(0) - y * l0(1)) / l0(2) + End If + Next + + + + 'ERROR: Extrapolation + ExtrapolError = True + + Return Nothing + + End Function + + 'XZ => Y Interpolation + Public Function IntpolXZ(ByVal x As Double, ByVal z As Double) As Double + Dim j As Integer + Dim l0 As Double() + Dim tr As dTriangle + + ExtrapolError = False + + If DualMode Then + + j = -1 + + 'Try exact solution for IsInside() + For Each tr In lDTXZ + j += 1 + If IsInside(tr, x, z, True) Then + l0 = planesXZ(j) + Return (l0(3) - x * l0(0) - z * l0(1)) / l0(2) + End If + Next + + 'Try approx. solution (fixes rounding errors when points lies exactly on an edge of a triangle) + For Each tr In lDTXZ + j += 1 + If IsInside(tr, x, z, False) Then + l0 = planesXZ(j) + Return (l0(3) - x * l0(0) - z * l0(1)) / l0(2) + End If + Next + + 'ERROR: Extrapolation + ExtrapolError = True + Return Nothing + + Else + + 'ERROR: Extrapolation + ExtrapolError = True + Return Nothing + + End If + End Function + + Private Function GetPlane(ByRef tr As dTriangle) As Double() + Dim AB As dPoint + Dim AC As dPoint + Dim cross As dPoint + Dim l(3) As Double + Dim pt1 As dPoint + Dim pt2 As dPoint + Dim pt3 As dPoint + + pt1 = tr.P1 + pt2 = tr.P2 + pt3 = tr.P3 + + AB = New dPoint(pt2.X - pt1.X, pt2.Y - pt1.Y, pt2.Z - pt1.Z) + AC = New dPoint(pt3.X - pt1.X, pt3.Y - pt1.Y, pt3.Z - pt1.Z) + + cross = New dPoint(AB.Y * AC.Z - AB.Z * AC.Y, AB.Z * AC.X - AB.X * AC.Z, AB.X * AC.Y - AB.Y * AC.X) + + l(0) = cross.X + l(1) = cross.Y + l(2) = cross.Z + + l(3) = pt1.X * cross.X + pt1.Y * cross.Y + pt1.Z * cross.Z + + Return l + + End Function + + Private Function IsInside(ByRef tr As dTriangle, ByVal xges As Double, ByVal yges As Double, ByVal Exact As Boolean) As Boolean + Dim v0(1) As Double + Dim v1(1) As Double + Dim v2(1) As Double + Dim dot00 As Double + Dim dot01 As Double + Dim dot02 As Double + Dim dot11 As Double + Dim dot12 As Double + Dim invDenom As Double + Dim u As Double + Dim v As Double + Dim pt1 As dPoint + Dim pt2 As dPoint + Dim pt3 As dPoint + + pt1 = tr.P1 + pt2 = tr.P2 + pt3 = tr.P3 + + 'Quelle: http://www.blackpawn.com/texts/pointinpoly/default.html (Barycentric Technique) + + ' Compute vectors + v0(0) = pt3.X - pt1.X + v0(1) = pt3.Y - pt1.Y + + v1(0) = pt2.X - pt1.X + v1(1) = pt2.Y - pt1.Y + + v2(0) = xges - pt1.X + v2(1) = yges - pt1.Y + + ' Compute dot products + dot00 = v0(0) * v0(0) + v0(1) * v0(1) + dot01 = v0(0) * v1(0) + v0(1) * v1(1) + dot02 = v0(0) * v2(0) + v0(1) * v2(1) + dot11 = v1(0) * v1(0) + v1(1) * v1(1) + dot12 = v1(0) * v2(0) + v1(1) * v2(1) + + ' Compute barycentric coordinates + invDenom = 1 / (dot00 * dot11 - dot01 * dot01) + u = (dot11 * dot02 - dot01 * dot12) * invDenom + v = (dot00 * dot12 - dot01 * dot02) * invDenom + + 'Debug.Print(u & ", " & v & ", " & u + v) + + ' Check if point is in triangle + If Exact Then + Return (u >= 0) And (v >= 0) And (u + v <= 1) + Else + Return (u >= -0.001) And (v >= -0.001) And (u + v <= 1.001) + End If + + End Function + + Public Class dPoint + Public X As Double + Public Y As Double + Public Z As Double + + Public Sub New(ByVal xd As Double, ByVal yd As Double, ByVal zd As Double) + X = xd + Y = yd + Z = zd + End Sub + + Public Shared Operator =(left As dPoint, right As dPoint) As Boolean + + 'If DirectCast(left, Object) = DirectCast(right, Object) Then + ' Return True + 'End If + + 'If (DirectCast(left, Object) Is Nothing) OrElse (DirectCast(right, Object) Is Nothing) Then + ' Return False + 'End If + + ' Just compare x and y here... + If left.X <> right.X Then + Return False + End If + + If left.Y <> right.Y Then + Return False + End If + + Return True + + End Operator + + Public Shared Operator <>(left As dPoint, right As dPoint) As Boolean + Return Not (left = right) + End Operator + + + End Class + + Public Class dTriangle + Public P1 As dPoint + Public P2 As dPoint + Public P3 As dPoint + + Public Sub New(ByRef pp1 As dPoint, ByRef pp2 As dPoint, ByRef pp3 As dPoint) + P1 = pp1 + P2 = pp2 + P3 = pp3 + End Sub + + Public Function ContainsInCircumcircle(pt As dPoint) As Double + Dim ax As Double = Me.P1.X - pt.X + Dim ay As Double = Me.P1.Y - pt.Y + Dim bx As Double = Me.P2.X - pt.X + Dim by As Double = Me.P2.Y - pt.Y + Dim cx As Double = Me.P3.X - pt.X + Dim cy As Double = Me.P3.Y - pt.Y + Dim det_ab As Double = ax * by - bx * ay + Dim det_bc As Double = bx * cy - cx * by + Dim det_ca As Double = cx * ay - ax * cy + Dim a_squared As Double = ax * ax + ay * ay + Dim b_squared As Double = bx * bx + by * by + Dim c_squared As Double = cx * cx + cy * cy + + Return a_squared * det_bc + b_squared * det_ca + c_squared * det_ab + + End Function + + Public Function SharesVertexWith(triangle As dTriangle) As Boolean + If Me.P1.X = triangle.P1.X AndAlso Me.P1.Y = triangle.P1.Y Then + Return True + End If + If Me.P1.X = triangle.P2.X AndAlso Me.P1.Y = triangle.P2.Y Then + Return True + End If + If Me.P1.X = triangle.P3.X AndAlso Me.P1.Y = triangle.P3.Y Then + Return True + End If + + If Me.P2.X = triangle.P1.X AndAlso Me.P2.Y = triangle.P1.Y Then + Return True + End If + If Me.P2.X = triangle.P2.X AndAlso Me.P2.Y = triangle.P2.Y Then + Return True + End If + If Me.P2.X = triangle.P3.X AndAlso Me.P2.Y = triangle.P3.Y Then + Return True + End If + + If Me.P3.X = triangle.P1.X AndAlso Me.P3.Y = triangle.P1.Y Then + Return True + End If + If Me.P3.X = triangle.P2.X AndAlso Me.P3.Y = triangle.P2.Y Then + Return True + End If + If Me.P3.X = triangle.P3.X AndAlso Me.P3.Y = triangle.P3.Y Then + Return True + End If + + Return False + End Function + + End Class + + Public Class dEdge + Public StartPoint As dPoint + Public EndPoint As dPoint + + Public Sub New(ByRef p1 As dPoint, ByRef p2 As dPoint) + StartPoint = p1 + EndPoint = p2 + End Sub + + Public Shared Operator =(left As dEdge, right As dEdge) As Boolean + 'If DirectCast(left, Object) = DirectCast(right, Object) Then + ' Return True + 'End If + + 'If (DirectCast(left, Object) Is Nothing) Or (DirectCast(right, Object) Is Nothing) Then + ' Return False + 'End If + + Return ((left.StartPoint = right.StartPoint AndAlso left.EndPoint = right.EndPoint) OrElse (left.StartPoint = right.EndPoint AndAlso left.EndPoint = right.StartPoint)) + End Operator + + Public Shared Operator <>(left As dEdge, right As dEdge) As Boolean + Return Not (left = right) + End Operator + + + End Class + + Public Class dTriangulation + + Public Function Triangulate(triangulationPoints As List(Of dPoint)) As List(Of dTriangle) + If triangulationPoints.Count < 3 Then + Throw New ArgumentException("Can not triangulate less than three vertices!") + End If + + ' The triangle list + Dim triangles As New List(Of dTriangle)() + + + + ' The "supertriangle" which encompasses all triangulation points. + ' This triangle initializes the algorithm and will be removed later. + Dim superTriangle As dTriangle = Me.SuperTriangle(triangulationPoints) + triangles.Add(superTriangle) + + ' Include each point one at a time into the existing triangulation + For i As Integer = 0 To triangulationPoints.Count - 1 + ' Initialize the edge buffer. + Dim EdgeBuffer As New List(Of dEdge)() + + ' If the actual vertex lies inside the circumcircle, then the three edges of the + ' triangle are added to the edge buffer and the triangle is removed from list. + For j As Integer = triangles.Count - 1 To 0 Step -1 + Dim t As dTriangle = triangles(j) + If t.ContainsInCircumcircle(triangulationPoints(i)) > 0 Then + EdgeBuffer.Add(New dEdge(t.P1, t.P2)) + EdgeBuffer.Add(New dEdge(t.P2, t.P3)) + EdgeBuffer.Add(New dEdge(t.P3, t.P1)) + triangles.RemoveAt(j) + End If + Next + + ' Remove duplicate edges. This leaves the convex hull of the edges. + ' The edges in this convex hull are oriented counterclockwise! + For j As Integer = EdgeBuffer.Count - 2 To 0 Step -1 + For k As Integer = EdgeBuffer.Count - 1 To j + 1 Step -1 + If EdgeBuffer(j) = EdgeBuffer(k) Then + EdgeBuffer.RemoveAt(k) + EdgeBuffer.RemoveAt(j) + k -= 1 + Continue For + End If + Next + Next + + ' Generate new counterclockwise oriented triangles filling the "hole" in + ' the existing triangulation. These triangles all share the actual vertex. + For j As Integer = 0 To EdgeBuffer.Count - 1 + triangles.Add(New dTriangle(EdgeBuffer(j).StartPoint, EdgeBuffer(j).EndPoint, triangulationPoints(i))) + Next + Next + + ' We don't want the supertriangle in the triangulation, so + ' remove all triangles sharing a vertex with the supertriangle. + For i As Integer = triangles.Count - 1 To 0 Step -1 + If triangles(i).SharesVertexWith(superTriangle) Then + triangles.RemoveAt(i) + End If + Next + + ' Return the triangles + Return triangles + End Function + + + + + Private Function SuperTriangle(triangulationPoints As List(Of dPoint)) As dTriangle + Dim M As Double = triangulationPoints(0).X + + ' get the extremal x and y coordinates + For i As Integer = 1 To triangulationPoints.Count - 1 + Dim xAbs As Double = Math.Abs(triangulationPoints(i).X) + Dim yAbs As Double = Math.Abs(triangulationPoints(i).Y) + If xAbs > M Then + M = xAbs + End If + If yAbs > M Then + M = yAbs + End If + Next + + ' make a triangle + Dim sp1 As New dPoint(10 * M, 0, 0) + Dim sp2 As New dPoint(0, 10 * M, 0) + Dim sp3 As New dPoint(-10 * M, -10 * M, 0) + + Return New dTriangle(sp1, sp2, sp3) + End Function + + End Class + + +End Class + diff --git a/VECTO/cFile V3.vb b/VECTO/cFile V3.vb new file mode 100644 index 0000000000000000000000000000000000000000..efb5537c4faa6e217f4080a43739b06825c3c5d0 --- /dev/null +++ b/VECTO/cFile V3.vb @@ -0,0 +1,147 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Public Class cFile_V3 + + Private TxtFldParser As Microsoft.VisualBasic.FileIO.TextFieldParser + Private StrWrter As System.IO.StreamWriter + Private Mode As FileMode + Private Path As String + Private Sepp As String + Private SkipCom As Boolean + Private StopE As Boolean + Private FileOpen As Boolean + Private PreLine As String() + Private FileEnd As Boolean + + Public Sub New() + Me.Reset() + End Sub + + Private Sub Reset() + FileOpen = False + Mode = FileMode.Undefined + PreLine = Nothing + FileEnd = False + End Sub + + Public Function OpenRead(ByVal FileName As String, Optional ByVal Separator As String = ",", Optional ByVal SkipComment As Boolean = True, Optional ByVal StopAtE As Boolean = False) As Boolean + Me.Reset() + StopE = StopAtE + Path = FileName + Sepp = Separator + SkipCom = SkipComment + If Not (Mode = FileMode.Undefined) Then Return False + If Not IO.File.Exists(Path) Then Return False + Mode = FileMode.Read + Try + TxtFldParser = New Microsoft.VisualBasic.FileIO.TextFieldParser(Path, System.Text.Encoding.Default) + FileOpen = True + Catch ex As Exception + Return False + End Try + TxtFldParser.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited + TxtFldParser.Delimiters = New String() {Sepp} + + 'If TxtFldParser.EndOfData Then Return False + + Me.ReadLine() + Return True + End Function + + Public Function ReadLine() As String() + Dim line As String() + Dim line0 As String + + line = PreLine + +lb10: + If TxtFldParser.EndOfData Then + + FileEnd = True + + Else + + PreLine = TxtFldParser.ReadFields + line0 = UCase(Trim(PreLine(0))) + + If SkipCom Then + If Left(line0, 1) = "#" Then GoTo lb10 + End If + + If StopE Then FileEnd = (line0 = "E") + + End If + + Return line + + End Function + + Public Sub Close() + Select Case Mode + Case FileMode.Read + If FileOpen Then TxtFldParser.Close() + TxtFldParser = Nothing + Case FileMode.Write + If FileOpen Then StrWrter.Close() + StrWrter = Nothing + End Select + Me.Reset() + End Sub + + Public ReadOnly Property EndOfFile() As Boolean + Get + Return FileEnd + End Get + End Property + + Public Function OpenWrite(ByVal FileName As String, Optional ByVal Separator As String = ",", Optional ByVal AutoFlush As Boolean = False, Optional ByVal Append As Boolean = False) As Boolean + Me.Reset() + Path = FileName + Sepp = Separator + If Not (Mode = FileMode.Undefined) Then Return False + Mode = FileMode.Write + Try + StrWrter = My.Computer.FileSystem.OpenTextFileWriter(Path, Append, FileFormat) + FileOpen = True + Catch ex As Exception + Return False + End Try + StrWrter.AutoFlush = AutoFlush + Return True + End Function + + Public Sub WriteLine(ByVal ParamArray x() As Object) + Dim St As String + Dim StB As New System.Text.StringBuilder + Dim Skip As Boolean + Skip = True + For Each St In x + If Skip Then + StB.Append(St) + Skip = False + Else + StB.Append(Sepp & St) + End If + Next + StrWrter.WriteLine(StB.ToString) + StB = Nothing + End Sub + Public Sub WriteLine(ByVal x As String) + StrWrter.WriteLine(x) + End Sub + + Private Enum FileMode + Undefined + Read + Write + End Enum + +End Class diff --git a/VECTO/cJSONparser.vb b/VECTO/cJSONparser.vb new file mode 100644 index 0000000000000000000000000000000000000000..198642ffafc39484b4744e0562625480e8901a71 --- /dev/null +++ b/VECTO/cJSONparser.vb @@ -0,0 +1,429 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic +Imports Newtonsoft.Json + + +'uses JSON.NET http://json.codeplex.com/ + +Public Class cJSON + Public Content As Dictionary(Of String, Object) + Public ErrorMsg As String + + Public Sub New() + Content = New Dictionary(Of String, Object) + End Sub + + + Public Function ReadFile(ByVal path As String) As Boolean + Dim file As Microsoft.VisualBasic.FileIO.TextFieldParser + Dim str As String + + + Content.Clear() + + 'check if file exists + If Not IO.File.Exists(path) Then + ErrorMsg = "file not found" + Return False + End If + + 'open file + Try + file = New Microsoft.VisualBasic.FileIO.TextFieldParser(path) + Catch ex As Exception + ErrorMsg = ex.Message + Return False + End Try + + 'Check if file is empty + If file.EndOfData Then + file.Close() + ErrorMsg = "file is empty" + Return False + End If + + 'read file + str = file.ReadToEnd + + 'close file + file.Close() + + 'parse JSON to Dictionary + Try + 'JSONobj = JsonConvert.DeserializeObject(str) + Content = JsonConvert.DeserializeObject(str, Content.GetType) + Catch ex As Exception + ErrorMsg = ex.Message + Return False + End Try + + Return True + + End Function + + Public Function WriteFile(ByVal path As String) As Boolean + Dim file As System.IO.StreamWriter + Dim str As String + Dim First As Boolean = True + + If Content.Count = 0 Then Return False + + Try + str = Newtonsoft.Json.JsonConvert.SerializeObject(Content, Formatting.Indented) + file = My.Computer.FileSystem.OpenTextFileWriter(path, False) + Catch ex As Exception + Return False + End Try + + file.Write(str) + + file.Close() + + Return True + + End Function + + +#Region "old self-made parser" + Private fullfile As String + + Private Function ReadFileXXX(ByVal path As String) As Boolean + Dim file As Microsoft.VisualBasic.FileIO.TextFieldParser + + Content.Clear() + + 'check if file exists + If Not IO.File.Exists(path) Then Return False + + 'open file + Try + file = New Microsoft.VisualBasic.FileIO.TextFieldParser(path) + Catch ex As Exception + Return False + End Try + + 'Check if file is empty + If file.EndOfData Then + file.Close() + Return False + End If + + 'read file + fullfile = file.ReadToEnd + + 'close file + file.Close() + + 'trim spaces + fullfile = fullfile.Trim + + 'remove line breaks + fullfile = fullfile.Replace(vbCrLf, "") + + If Left(fullfile, 1) <> "{" Or Right(fullfile, 1) <> "}" Then Return False + + 'parse JSON to Dictionary + Try + Content = GetObject() + Catch ex As Exception + Return False + End Try + + + Return True + + End Function + + + + + Private Function WriteFileXXX(ByVal path As String) As Boolean + Dim file As System.IO.StreamWriter + Dim kv As KeyValuePair(Of String, Object) + Dim str As New System.Text.StringBuilder + Dim First As Boolean = True + + If Content.Count = 0 Then Return False + + Try + str.AppendLine("{") + For Each kv In Content + If First Then + First = False + Else + str.AppendLine(",") + End If + str.Append(GetKeyValString(1, kv)) + Next + str.AppendLine() + str.AppendLine("}") + Catch ex As Exception + Return False + End Try + + Try + file = My.Computer.FileSystem.OpenTextFileWriter(path, False) + Catch ex As Exception + Return False + End Try + + file.Write(str.ToString) + + file.Close() + + Return True + + End Function + + Private Function GetKeyValString(ByVal TabLvl As Integer, ByRef kv As KeyValuePair(Of String, Object)) As String + Dim str As New System.Text.StringBuilder + Dim obj As Object + Dim kv0 As KeyValuePair(Of String, Object) + Dim First As Boolean + + str.Append(Tabs(TabLvl) & ChrW(34) & kv.Key & ChrW(34) & ": ") + + Select Case kv.Value.GetType + + Case GetType(Dictionary(Of String, Object)) + + str.AppendLine("{") + + First = True + For Each kv0 In kv.Value + If First Then + First = False + Else + str.AppendLine(",") + End If + str.Append(GetKeyValString(TabLvl + 1, kv0)) + Next + + str.AppendLine() + str.Append(Tabs(TabLvl) & "}") + + Case GetType(List(Of Object)) + + str.AppendLine("[") + + First = True + For Each obj In kv.Value + If First Then + First = False + Else + str.AppendLine(",") + End If + str.Append(Tabs(TabLvl + 1) & GetObjString(TabLvl + 1, obj)) + Next + + str.AppendLine() + str.Append(Tabs(TabLvl) & "]") + + Case Else + + str.Append(GetObjString(TabLvl + 1, kv.Value)) + + End Select + + Return str.ToString + + End Function + + Private Function GetObjString(ByVal TabLvl As Integer, ByRef obj As Object) As String + Dim kv0 As KeyValuePair(Of String, Object) + Dim First As Boolean + Dim str As System.Text.StringBuilder + + If obj Is Nothing Then + Return "null" + Else + Select Case obj.GetType + + Case GetType(Dictionary(Of String, Object)) + + str = New System.Text.StringBuilder + str.AppendLine("{") + + First = True + For Each kv0 In obj + If First Then + First = False + Else + str.AppendLine(",") + End If + str.Append(GetKeyValString(TabLvl + 1, kv0)) + Next + + str.AppendLine() + str.Append(Tabs(TabLvl) & "}") + + Return str.ToString + + Case GetType(String) + + Return ChrW(34) & CStr(obj) & ChrW(34) + + Case GetType(Boolean) + + If CBool(obj) Then + Return "true" + Else + Return "false" + End If + + Case Else + + Return CDbl(obj).ToString + + End Select + End If + + + End Function + + Private Function Tabs(ByVal l As Integer) As String + Dim i As Integer + Dim str As String + + str = "" + For i = 1 To l + str &= vbTab + Next + + Return str + End Function + + Private Function GetObject() As Dictionary(Of String, Object) + Dim MyDic As Dictionary(Of String, Object) + Dim key As String + Dim obj As Object + Dim i As Integer + Dim i2 As Integer + Dim Valstr As String + Dim ValList As List(Of Object) = Nothing + Dim ArrayMode As Boolean = False + + 'remove { + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + + 'new list of key/value pairs + MyDic = New Dictionary(Of String, Object) + + + 'loop through key/value pairs +lb10: + If Left(fullfile, 1) <> ChrW(34) Then + Throw New Exception + Return Nothing + End If + + 'get key + i = fullfile.IndexOf(ChrW(34), 1) + key = Mid(fullfile, 2, i - 1) + fullfile = (Right(fullfile, Len(fullfile) - i - 1)).Trim + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + + If key = "" Then + Throw New Exception + Return Nothing + End If + + 'get value (object, number, boolean, array) + If Left(fullfile, 1) = "[" Then + ArrayMode = True + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + ValList = New List(Of Object) + End If + +lb20: + If Left(fullfile, 1) = "{" Then + obj = GetObject() + Else + If Left(fullfile, 1) = ChrW(34) Then + 'string + i = fullfile.IndexOf(ChrW(34), 1) + obj = Mid(fullfile, 2, i - 1) + fullfile = (Right(fullfile, Len(fullfile) - i - 1)).Trim + Else + 'number/boolean + i = fullfile.IndexOf(",", 1) + i2 = fullfile.IndexOf("}", 1) + + If i = -1 Then + If i2 = -1 Then + Valstr = Right(fullfile, Len(fullfile) - 1) + fullfile = "" + Else + Valstr = Mid(fullfile, 1, i2) + fullfile = (Right(fullfile, Len(fullfile) - i2)).Trim + End If + Else + If i2 = -1 Or i < i2 Then + Valstr = Mid(fullfile, 1, i) + fullfile = (Right(fullfile, Len(fullfile) - i)).Trim + Else + Valstr = Mid(fullfile, 1, i2) + fullfile = (Right(fullfile, Len(fullfile) - i2)).Trim + End If + End If + + If IsNumeric(Valstr) Then + obj = CDbl(Valstr) + ElseIf (UCase(Valstr)).Trim = "FALSE" Then + obj = False + ElseIf (UCase(Valstr)).Trim = "TRUE" Then + obj = True + ElseIf (UCase(Valstr)).Trim = "NULL" Then + obj = Nothing + Else + Throw New Exception + Return Nothing + End If + + End If + End If + + If ArrayMode Then + ValList.Add(obj) + If Left(fullfile, 1) = "]" Then + ArrayMode = False + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + MyDic.Add(key, ValList) + End If + Else + MyDic.Add(key, obj) + End If + + If Left(fullfile, 1) = "," Then + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + If ArrayMode Then + GoTo lb20 + Else + GoTo lb10 + End If + End If + + If Left(fullfile, 1) = "}" Then + fullfile = (Right(fullfile, Len(fullfile) - 1)).Trim + End If + + Return MyDic + + + End Function + + +#End Region + + + +End Class diff --git a/VECTO/cRegression.vb b/VECTO/cRegression.vb new file mode 100644 index 0000000000000000000000000000000000000000..61241b661f6b4bd534718c1defbcb89ea5613637 --- /dev/null +++ b/VECTO/cRegression.vb @@ -0,0 +1,167 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Public Class cRegression + + Public Class RegressionProcessInfo + + Public SampleSize As Integer = 0 + + Public SigmaError As Double + + Public XRangeL As Double = Double.MaxValue + + Public XRangeH As Double = Double.MinValue + + Public YRangeL As Double = Double.MaxValue + + Public YRangeH As Double = Double.MinValue + + Public StandardError As Double + + Public a As Double + + Public b As Double + + Public XStdDev As Double + + Public YStdDev As Double + + Public XMean As Double + + Public YMean As Double + + Public PearsonsR As Double + + Public t As Double + + Dim Residuals As ArrayList = New ArrayList + + Public Overrides Function ToString() As String + + Dim ret As String = "SampleSize=" & Me.SampleSize & vbCrLf & "StandardError=" & Me.StandardError & vbCrLf & "y=" & Me.a & " + " & Me.b & "x" + + Return ret + + End Function + + End Class + + Function Regress(ByVal xval() As Double, ByVal yval() As Double) As RegressionProcessInfo + + Dim sigmax As Double = 0.0 + + Dim sigmay As Double = 0.0 + + Dim sigmaxx As Double = 0.0 + + Dim sigmayy As Double = 0.0 + + Dim sigmaxy As Double = 0.0 + + Dim x As Double + + Dim y As Double + + Dim n As Double = 0 + + Dim ret As RegressionProcessInfo = New RegressionProcessInfo + + For arrayitem As Integer = LBound(xval) To UBound(xval) + + x = xval(arrayitem) + + y = yval(arrayitem) + + If x > ret.XRangeH Then + + ret.XRangeH = x + + End If + + If x < ret.XRangeL Then + + ret.XRangeL = x + + End If + + If y > ret.YRangeH Then + + ret.YRangeH = y + + End If + + If y < ret.YRangeL Then + + ret.YRangeL = y + + End If + + sigmax += x + + sigmaxx += x * x + + sigmay += y + + sigmayy += y * y + + sigmaxy += x * y + + n = n + 1 + + Next + + ret.b = (n * sigmaxy - sigmax * sigmay) / (n * sigmaxx - sigmax * sigmax) + + ret.a = (sigmay - ret.b * sigmax) / n + + ret.SampleSize = CType(n, Integer) + + 'calculate distances for each point (residual) + + For arr2 As Integer = LBound(xval) To UBound(xval) + + y = yval(arr2) + + x = xval(arr2) + + Dim yprime As Double = ret.a + ret.b * x 'prediction + + Dim Residual As Double = y - yprime + + ret.SigmaError += Residual * Residual + + Next + + ret.XMean = sigmax / n + + ret.YMean = sigmay / n + + ret.XStdDev = Math.Sqrt((CType(n * sigmaxx - sigmax * sigmax, Double)) / (CDbl(n) * CDbl(n) - 1.0)) + + ret.YStdDev = Math.Sqrt((CType(n * sigmayy - sigmay * sigmay, Double)) / (CDbl(n) * CDbl(n) - 1.0)) + + ret.StandardError = Math.Sqrt(ret.SigmaError / ret.SampleSize) + + Dim ssx As Double = sigmaxx - ((sigmax * sigmax) / n) + + Dim ssy As Double = sigmayy - ((sigmay * sigmay) / n) + + Dim ssxy As Double = sigmaxy - ((sigmax * sigmay) / n) + + ret.PearsonsR = ssxy / Math.Sqrt(ssx * ssy) + + ret.t = ret.PearsonsR / Math.Sqrt((1 - (ret.PearsonsR * ret.PearsonsR)) / (n - 2)) + + Return ret + + End Function + +End Class diff --git a/VECTO/cVSUM.vb b/VECTO/cVSUM.vb new file mode 100644 index 0000000000000000000000000000000000000000..68637968be5b53d1b1c5ba26f7b129e092e4d6a2 --- /dev/null +++ b/VECTO/cVSUM.vb @@ -0,0 +1,725 @@ +' Copyright 2014 European Union. +' Licensed under the EUPL (the 'Licence'); +' +' * You may not use this work except in compliance with the Licence. +' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl +' * Unless required by applicable law or agreed to in writing, +' software distributed under the Licence is distributed on an "AS IS" basis, +' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +' +' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.Collections.Generic + +Class cVSUM + + Private Const FormatVersion As Short = 1 + + Private VSUMpath As String + Private Fvsum As System.IO.StreamWriter + Private HeadInitialized As Boolean + + Private VSUMentries As Dictionary(Of String, cVSUMentry) + Private VSUMentryList As List(Of String) 'Wird benötigt weil Dictionary nicht sortiert ist + + Private vsumJSON As cJSON + Private ResList As List(Of Dictionary(Of String, Object)) + + + Public Sub New() + HeadInitialized = False + VSUMpath = "" + End Sub + + Public Function VSUMhead() As String + Dim s As New System.Text.StringBuilder + Dim key As String + Dim First As Boolean + + First = True + For Each key In VSUMentryList + If Not First Then s.Append(",") + s.Append(VSUMentries(key).Head & " " & VSUMentries(key).Unit) + First = False + Next + + Return s.ToString + + End Function + + Public Function VSUMline() As String + Dim VSUMentry As cVSUMentry + Dim s As New System.Text.StringBuilder + Dim t1 As Integer + Dim Vquer As Single + Dim sum As Double + Dim t As Integer + Dim key As String + Dim First As Boolean + + For Each VSUMentry In VSUMentries.Values + VSUMentry.ValueString = Nothing + Next + + t1 = MODdata.tDim + + 'Vehicle type-independent + VSUMentries("\\T").ValueString = (t1 + 1) + + 'Length, Speed, Slope + If Not VEC.EngOnly Then + + 'Average-Speed. calculation + sum = 0 + For t = 0 To t1 + sum += MODdata.Vh.V(t) + Next + Vquer = 3.6 * sum / (t1 + 1) + + VSUMentries("\\S").ValueString = (Vquer * (t1 + 1) / 3600) + VSUMentries("\\V").ValueString = Vquer + + 'altitude change + VSUMentries("\\G").ValueString = MODdata.Vh.AltIntp(Vquer * (t1 + 1) / 3.6, False) - MODdata.Vh.AltIntp(0, False) + + 'Auxiliary energy consumption + If VEC.AuxDef Then + For Each key In VEC.AuxPaths.Keys + sum = 0 + For t = 0 To t1 + sum += MODdata.Paux(key)(t) + Next + VSUMentries("\\Eaux_" & UCase(key)).ValueString = sum / 3600 + Next + End If + + + End If + + 'FC + If MODdata.FCerror Then + + If VEC.EngOnly Then + VSUMentries("FC_h").ValueString = "ERROR" + Else + VSUMentries("FC_km").ValueString = "ERROR" + End If + + If MODdata.FCAUXcSet Then + If VEC.EngOnly Then + VSUMentries("FC-AUXc_h").ValueString = "ERROR" + Else + VSUMentries("FC-AUXc_km").ValueString = "ERROR" + End If + End If + + If Cfg.DeclMode Then + If VEC.EngOnly Then + VSUMentries("FC-WHTCc_h").ValueString = "ERROR" + Else + VSUMentries("FC-WHTCc_km").ValueString = "ERROR" + End If + End If + + Else + + If VEC.EngOnly Then + VSUMentries("FC_h").ValueString = MODdata.FCavg + Else + VSUMentries("FC_km").ValueString = (MODdata.FCavg / Vquer) + + VSUMentries("FCl_km").ValueString = (100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000) '[l/100km] + VSUMentries("CO2_km").ValueString = Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer) '[g/km] + + If VEH.Loading > 0 Then + VSUMentries("CO2_tkm").ValueString = (Cfg.CO2perFC * (MODdata.FCavgFinal / Vquer)) / (VEH.Loading / 1000) '[g/tkm] + VSUMentries("FCl_tkm").ValueString = ((100 * MODdata.FCavgFinal / Vquer) / (Cfg.FuelDens * 1000)) / (VEH.Loading / 1000) '[l/100tkm] + End If + + VSUMentries("FC-Final_km").ValueString = (MODdata.FCavgFinal / Vquer) + + End If + + If MODdata.FCAUXcSet Then + If VEC.EngOnly Then + VSUMentries("FC-AUXc_h").ValueString = MODdata.FCavgAUXc + Else + VSUMentries("FC-AUXc_km").ValueString = (MODdata.FCavgAUXc / Vquer) + End If + End If + + If Cfg.DeclMode Then + If VEC.EngOnly Then + VSUMentries("FC-WHTCc_h").ValueString = MODdata.FCavgWHTCc + Else + VSUMentries("FC-WHTCc_km").ValueString = (MODdata.FCavgWHTCc / Vquer) + End If + End If + + + + + + + End If + + 'Power, Revolutions + + 'Ppos + sum = 0 + For t = 0 To t1 + sum += Math.Max(0, MODdata.Pe(t)) + Next + VSUMentries("\\Ppos").ValueString = (sum / (t1 + 1)) + + 'Pneg + sum = 0 + For t = 0 To t1 + sum += Math.Min(0, MODdata.Pe(t)) + Next + VSUMentries("\\Pneg").ValueString = (sum / (t1 + 1)) + + + + 'Only Entire-vehicle (not EngOnly) + If Not VEC.EngOnly Then + + 'Pbrake-norm + sum = 0 + For t = 0 To t1 + sum += MODdata.Pbrake(t) + Next + VSUMentries("\\Pbrake").ValueString = (sum / (t1 + 1)) + + 'Eair + sum = 0 + For t = 0 To t1 + sum += MODdata.Pair(t) + Next + VSUMentries("\\Eair").ValueString = (-sum / 3600) + + 'Eroll + sum = 0 + For t = 0 To t1 + sum += MODdata.Proll(t) + Next + VSUMentries("\\Eroll").ValueString = (-sum / 3600) + + 'Egrad + sum = 0 + For t = 0 To t1 + sum += MODdata.Pstg(t) + Next + VSUMentries("\\Egrad").ValueString = (-sum / 3600) + + 'Eacc + sum = 0 + For t = 0 To t1 + sum += MODdata.Pa(t) + MODdata.PaGB(t) + MODdata.PaEng(t) + Next + VSUMentries("\\Eacc").ValueString = (-sum / 3600) + + 'Eaux + sum = 0 + For t = 0 To t1 + sum += MODdata.PauxSum(t) + Next + VSUMentries("\\Eaux").ValueString = (-sum / 3600) + + 'Ebrake + sum = 0 + For t = 0 To t1 + sum += MODdata.Pbrake(t) + Next + VSUMentries("\\Ebrake").ValueString = (sum / 3600) + + 'Etransm + sum = 0 + For t = 0 To t1 + sum += MODdata.PlossDiff(t) + MODdata.PlossGB(t) + Next + VSUMentries("\\Etransm").ValueString = (-sum / 3600) + + 'Retarder + sum = 0 + For t = 0 To t1 + sum += MODdata.PlossRt(t) + Next + VSUMentries("\\Eretarder").ValueString = (-sum / 3600) + + 'Masse, Loading + VSUMentries("\\Mass").ValueString = (VEH.Mass + VEH.MassExtra) + VSUMentries("\\Loading").ValueString = VEH.Loading + + 'CylceKin + For Each VSUMentry In MODdata.CylceKin.VSUMentries + VSUMentries("\\" & VSUMentry.Head).ValueString = MODdata.CylceKin.GetValueString(VSUMentry.Head) + Next + + 'EposICE + sum = 0 + For t = 0 To t1 + sum += Math.Max(0, MODdata.Pe(t)) + Next + VSUMentries("\\EposICE").ValueString = (sum / 3600) + + 'EnegICE + sum = 0 + For t = 0 To t1 + sum += Math.Min(0, MODdata.Pe(t)) + Next + VSUMentries("\\EnegICE").ValueString = (sum / 3600) + + End If + + 'Create Output-string: + First = True + + For Each key In VSUMentryList + If Not First Then s.Append(",") + s.Append(VSUMentries(key).ValueString) + First = False + Next + + Return s.ToString + + End Function + + Private Function HeadInit() As Boolean + Dim MsgSrc As String + + MsgSrc = "SUMALL/Output" + + 'Open file + Try + Fvsum = My.Computer.FileSystem.OpenTextFileWriter(VSUMpath, True, FileFormat) + Fvsum.AutoFlush = True + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Cannot access .vsum file (" & VSUMpath & ")", MsgSrc) + Return False + End Try + + '*** Header / Units + Fvsum.WriteLine("Job [-],Input File [-],Cycle [-]," & VSUMhead()) + + 'Close file (will open after each job) + Fvsum.Close() + + HeadInitialized = True + + Return True + + End Function + + Public Function WriteVSUM(ByVal NrOfRunStr As String, ByVal JobFilename As String, ByVal CycleFilename As String, ByVal AbortedByError As Boolean) As Boolean + Dim str As String + Dim MsgSrc As String + Dim dic As Dictionary(Of String, Object) + Dim dic0 As Dictionary(Of String, Object) + Dim dic1 As Dictionary(Of String, Object) + Dim ls0 As List(Of Dictionary(Of String, Object)) + Dim key As String + + MsgSrc = "SUMALL/Output" + + If Not HeadInitialized Then + If Not HeadInit() Then Return False + End If + + 'JSON + dic = New Dictionary(Of String, Object) + + 'Open file + Try + Fvsum = My.Computer.FileSystem.OpenTextFileWriter(VSUMpath, True, FileFormat) + Fvsum.AutoFlush = True + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Cannot access .vsum file (" & VSUMpath & ")", MsgSrc) + Return False + End Try + + str = NrOfRunStr & "," & JobFilename & "," & CycleFilename & "," + dic.Add("Job", JobFilename) + + + If Cfg.DeclMode Then + If Not Declaration.CurrentMission Is Nothing Then dic.Add("Cycle", Declaration.CurrentMission.NameStr) + dic.Add("Loading", ConvLoading(Declaration.CurrentLoading)) + Else + dic.Add("Cycle", CycleFilename) + dic.Add("Loading", ConvLoading(tLoading.UserDefLoaded)) + End If + + + + If AbortedByError Then + Fvsum.WriteLine(str & "Aborted due to Error!") + dic.Add("AbortedByError", True) + Else + Fvsum.WriteLine(str & VSUMline()) + dic.Add("AbortedByError", False) + + dic1 = New Dictionary(Of String, Object) + For Each key In VSUMentryList + dic0 = New Dictionary(Of String, Object) + + dic0.Add("Value", VSUMentries(key).ValueString) + dic0.Add("Unit", VSUMentries(key).Unit) + + If VSUMentries(key).Multi Then + + If dic1.ContainsKey(VSUMentries(key).Head) Then + ls0 = dic1(VSUMentries(key).Head) + Else + ls0 = New List(Of Dictionary(Of String, Object)) + dic1.Add(VSUMentries(key).Head, ls0) + End If + + ls0.Add(dic0) + + Else + + dic1.Add(VSUMentries(key).Head, dic0) + + End If + + Next + dic.Add("Results", dic1) + + End If + + ResList.Add(dic) + + + 'Close file + Fvsum.Close() + Fvsum = Nothing + + Return True + + End Function + + Public Function WriteJSON() As Boolean + + vsumJSON.Content("Body").add("Results", ResList) + + Try + Return vsumJSON.WriteFile(VSUMpath & ".json") + Catch ex As Exception + Return False + End Try + + End Function + + Private Sub AddToVSUM(ByVal IDstring As String, ByVal Head As String, ByVal Unit As String, Optional Multi As Boolean = False) + If Not VSUMentries.ContainsKey(IDstring) Then + VSUMentries.Add(IDstring, New cVSUMentry(Head, Unit)) + VSUMentryList.Add(IDstring) + If Multi Then VSUMentries(IDstring).Multi = True + End If + End Sub + + ''' <summary> + ''' Initializes the specified job file. + ''' </summary> + ''' <param name="JobFile">The job file.</param> + ''' <returns></returns> + Public Function Init(ByVal JobFile As String) As Boolean + Dim JobFiles As New List(Of String) + Dim str As String + Dim str1 As String + Dim file As New cFile_V3 + Dim VEC0 As cVECTO + Dim MAP0 As cMAP + Dim ENG0 As cENG + Dim HEVorEVdone As Boolean + Dim EVdone As Boolean + Dim EngOnly As Boolean + Dim NonEngOnly As Boolean + Dim VSUMentry As cVSUMentry + Dim CylceKin As cCycleKin + Dim i1 As Integer + Dim i2 As Integer + Dim iDim As Integer + Dim dic As Dictionary(Of String, Object) + + + Dim MsgSrc As String + + MsgSrc = "SUMALL/Init" + + 'Check if file exists + If Not IO.File.Exists(JobFile) Then + WorkerMsg(tMsgID.Err, "Job file not found! (" & JobFile & ")", MsgSrc) + Return False + End If + + 'Define Output-path + If Cfg.BatchMode Then + Select Case UCase(Cfg.BATCHoutpath) + Case sKey.JobPath + VSUMpath = fFileWoExt(JobFile) & "_BATCH.vsum" + Case Else + VSUMpath = Cfg.BATCHoutpath & fFILE(JobFile, False) & "_BATCH.vsum" + End Select + Else + VSUMpath = fFileWoExt(JobFile) & ".vsum" + End If + + 'Open file + Try + 'Open file + Fvsum = My.Computer.FileSystem.OpenTextFileWriter(VSUMpath, False, FileFormat) + Fvsum.AutoFlush = True + Catch ex As Exception + WorkerMsg(tMsgID.Err, "Cannot write to .vsum file (" & VSUMpath & ")", MsgSrc) + Return False + End Try + + 'JSON + vsumJSON = New cJSON + + dic = New Dictionary(Of String, Object) + dic.Add("CreatedBy", Lic.LicString & " (" & Lic.GUID & ")") + dic.Add("Date", Now.ToString) + dic.Add("AppVersion", VECTOvers) + dic.Add("FileVersion", FormatVersion) + vsumJSON.Content.Add("Header", dic) + vsumJSON.Content.Add("Body", New Dictionary(Of String, Object)) + dic = New Dictionary(Of String, Object) + dic.Add("Air Density [kg/m3]", Cfg.AirDensity) + dic.Add("CO2/FC [-]", Cfg.CO2perFC) + dic.Add("Fuel Density [kg/l]", Cfg.FuelDens) + + dic.Add("Distance Correction", Cfg.DistCorr) + vsumJSON.Content("Body").add("Settings", dic) + + ResList = New List(Of Dictionary(Of String, Object)) + + 'Info + 'Fvsum.WriteLine("VECTO results") + 'Fvsum.WriteLine("VECTO " & VECTOvers) + 'Fvsum.WriteLine(Now.ToString) + 'Fvsum.WriteLine("air density [kg/m3]: " & Cfg.AirDensity) + 'If Cfg.DistCorr Then + ' Fvsum.WriteLine("Distance Correction ON") + 'Else + ' Fvsum.WriteLine("Distance Correction OFF") + 'End If + + 'Close file (will open after each job) + Fvsum.Close() + + 'Add file to signing list + Lic.FileSigning.AddFile(VSUMpath) + Lic.FileSigning.AddFile(VSUMpath & ".json") + + + VSUMentries = New Dictionary(Of String, cVSUMentry) + VSUMentryList = New List(Of String) + + + For Each str In JobFileList + JobFiles.Add(fFileRepl(str)) + Next + + + '********************** Create VSUM-Entries '********************** + EVdone = False + HEVorEVdone = False + EngOnly = False + NonEngOnly = False + + 'Vehicle type-independent + AddToVSUM("\\T", "time", "[s]") + + For Each str In JobFiles + + VEC0 = New cVECTO + + VEC0.FilePath = str + + Try + If Not VEC0.ReadFile Then + WorkerMsg(tMsgID.Err, "Can't read .vecto file '" & str & "' !", MsgSrc) + Return False + End If + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & str & ")", MsgSrc) + Return False + End Try + + If VEC0.EngOnly Then + + If Not EngOnly Then + + 'nothing... + + EngOnly = True + + End If + + Else + + If Not NonEngOnly Then + + AddToVSUM("\\S", "distance", "[km]") + AddToVSUM("\\V", "speed", "[km/h]") + AddToVSUM("\\G", "∆altitude", "[m]") + + NonEngOnly = True + + End If + + 'Auxiliary energy consumption + If VEC0.AuxDef Then + For Each str1 In VEC0.AuxPaths.Keys + AddToVSUM("\\Eaux_" & UCase(str1), "Eaux_" & str1, "[kWh]") + Next + End If + + End If + + 'Conventional vehicles ... + AddToVSUM("\\Ppos", "Ppos", "[kW]") + AddToVSUM("\\Pneg", "Pneg", "[kW]") + + 'From the Engine-Map + ENG0 = New cENG + ENG0.FilePath = VEC0.PathENG + + Try + If Not ENG0.ReadFile Then Return False + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & VEC0.PathENG & ")", MsgSrc) + Return False + End Try + + MAP0 = New cMAP + MAP0.FilePath = ENG0.PathMAP + + Try + If Not MAP0.ReadFile(True) Then Return False + Catch ex As Exception + WorkerMsg(tMsgID.Err, "File read error! (" & ENG0.PathMAP & ")", MsgSrc) + Return False + End Try + + If VEC0.EngOnly Then + AddToVSUM("FC_h", "FC", "[g/h]") + AddToVSUM("FC-AUXc_h", "FC-AUXc", "[g/h]") + AddToVSUM("FC-WHTCc_h", "FC-WHTCc", "[g/h]") + Else + AddToVSUM("FC_km", "FC", "[g/km]") + AddToVSUM("FC-AUXc_km", "FC-AUXc", "[g/km]") + AddToVSUM("FC-WHTCc_km", "FC-WHTCc", "[g/km]") + + AddToVSUM("CO2_km", "CO2", "[g/km]", True) + AddToVSUM("CO2_tkm", "CO2", "[g/tkm]", True) + + AddToVSUM("FC-Final_km", "FC-Final", "[g/km]", True) + AddToVSUM("FCl_km", "FC-Final", "[l/100km]", True) + AddToVSUM("FCl_tkm", "FC-Final", "[l/100tkm]", True) + + End If + + Next + + + If EngOnly Then + + 'currently nothing + + End If + + If NonEngOnly Then + + 'Vehicle-related fields + AddToVSUM("\\Pbrake", "Pbrake", "[kW]") + AddToVSUM("\\EposICE", "EposICE", "[kWh]") + AddToVSUM("\\EnegICE", "EnegICE", "[kWh]") + AddToVSUM("\\Eair", "Eair", "[kWh]") + AddToVSUM("\\Eroll", "Eroll", "[kWh]") + AddToVSUM("\\Egrad", "Egrad", "[kWh]") + AddToVSUM("\\Eacc", "Eacc", "[kWh]") + AddToVSUM("\\Eaux", "Eaux", "[kWh]") + AddToVSUM("\\Ebrake", "Ebrake", "[kWh]") + AddToVSUM("\\Etransm", "Etransm", "[kWh]") + AddToVSUM("\\Eretarder", "Eretarder", "[kWh]") + AddToVSUM("\\Mass", "Mass", "[kg]") + AddToVSUM("\\Loading", "Loading", "[kg]") + + 'CylceKin + CylceKin = New cCycleKin + For Each VSUMentry In CylceKin.VSUMentries + AddToVSUM("\\" & VSUMentry.Head, VSUMentry.Head, VSUMentry.Unit) + Next + + End If + + 'Sort + iDim = VSUMentryList.Count - 1 + + For i1 = 0 To iDim - 1 + str = VSUMentries(VSUMentryList(i1)).Head + For i2 = i1 + 1 To iDim + If VSUMentries(VSUMentryList(i2)).Head = str Then + VSUMentryList.Insert(i1 + 1, VSUMentryList(i2)) + VSUMentryList.RemoveAt(i2 + 1) + End If + Next + Next + + 'Sort Aux + For i1 = 0 To iDim - 1 + str = VSUMentries(VSUMentryList(i1)).Head + If str.Length > 4 AndAlso Left(str, 4) = "Eaux" Then + For i2 = i1 + 1 To iDim + If VSUMentries(VSUMentryList(i2)).Head.Length > 4 AndAlso Left(VSUMentries(VSUMentryList(i2)).Head, 4) = "Eaux" Then + VSUMentryList.Insert(i1 + 1, VSUMentryList(i2)) + VSUMentryList.RemoveAt(i2 + 1) + End If + Next + End If + Next + + Return True + + End Function + + Public ReadOnly Property VSUMfile As String + Get + Return VSUMpath + End Get + End Property + +End Class + +Public Class cVSUMentry + Public Head As String + Public Unit As String + Public MyVal As Object + Public Multi As Boolean + + Public Sub New(ByVal HeadStr As String, ByVal UnitStr As String) + Head = HeadStr + Unit = UnitStr + MyVal = Nothing + Multi = False + End Sub + + Public Property ValueString As Object + Get + If MyVal Is Nothing Then + Return "-" + Else + Return MyVal + End If + End Get + Set(value As Object) + MyVal = value + End Set + End Property + + + +End Class diff --git a/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb index beaf6391a9ae5fd5f6afab5936f83868a2ba1998..dcc38b4da37303725d81796e6bfb6342447facd1 100644 --- a/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb +++ b/VECTOAux/VectoAuxiliaries/UI/F_Compressor.Designer.vb @@ -41,7 +41,7 @@ Namespace UI 'lblPullyEfficiency ' Me.lblPullyEfficiency.AutoSize = True - Me.lblPullyEfficiency.Location = New System.Drawing.Point(6, 63) + Me.lblPullyEfficiency.Location = New System.Drawing.Point(6, 116) Me.lblPullyEfficiency.Name = "lblPullyEfficiency" Me.lblPullyEfficiency.Size = New System.Drawing.Size(87, 13) Me.lblPullyEfficiency.TabIndex = 21 @@ -49,7 +49,7 @@ Namespace UI ' 'txtPullyEfficiency ' - Me.txtPullyEfficiency.Location = New System.Drawing.Point(105, 60) + Me.txtPullyEfficiency.Location = New System.Drawing.Point(105, 113) Me.txtPullyEfficiency.Name = "txtPullyEfficiency" Me.txtPullyEfficiency.Size = New System.Drawing.Size(46, 20) Me.txtPullyEfficiency.TabIndex = 20 @@ -84,7 +84,7 @@ Namespace UI ' 'btnCancel ' - Me.btnCancel.Location = New System.Drawing.Point(518, 113) + Me.btnCancel.Location = New System.Drawing.Point(518, 166) Me.btnCancel.Name = "btnCancel" Me.btnCancel.Size = New System.Drawing.Size(75, 23) Me.btnCancel.TabIndex = 15 @@ -93,7 +93,7 @@ Namespace UI ' 'btnSave ' - Me.btnSave.Location = New System.Drawing.Point(431, 113) + Me.btnSave.Location = New System.Drawing.Point(431, 166) Me.btnSave.Name = "btnSave" Me.btnSave.Size = New System.Drawing.Size(75, 23) Me.btnSave.TabIndex = 14 @@ -104,7 +104,7 @@ Namespace UI ' Me.lblMapLabel.AutoSize = True Me.lblMapLabel.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblMapLabel.Location = New System.Drawing.Point(59, 25) + Me.lblMapLabel.Location = New System.Drawing.Point(59, 78) Me.lblMapLabel.Name = "lblMapLabel" Me.lblMapLabel.Size = New System.Drawing.Size(34, 13) Me.lblMapLabel.TabIndex = 28 @@ -112,7 +112,7 @@ Namespace UI ' 'txtMapPath ' - Me.txtMapPath.Location = New System.Drawing.Point(105, 22) + Me.txtMapPath.Location = New System.Drawing.Point(105, 75) Me.txtMapPath.Name = "txtMapPath" Me.txtMapPath.ReadOnly = True Me.txtMapPath.Size = New System.Drawing.Size(397, 20) @@ -121,7 +121,7 @@ Namespace UI 'btnBrowsePowerMap ' Me.btnBrowsePowerMap.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnBrowsePowerMap.Location = New System.Drawing.Point(512, 22) + Me.btnBrowsePowerMap.Location = New System.Drawing.Point(512, 75) Me.btnBrowsePowerMap.Name = "btnBrowsePowerMap" Me.btnBrowsePowerMap.Size = New System.Drawing.Size(75, 23) Me.btnBrowsePowerMap.TabIndex = 26 @@ -131,7 +131,7 @@ Namespace UI 'lblPulleyGearRatio ' Me.lblPulleyGearRatio.AutoSize = True - Me.lblPulleyGearRatio.Location = New System.Drawing.Point(163, 64) + Me.lblPulleyGearRatio.Location = New System.Drawing.Point(163, 117) Me.lblPulleyGearRatio.Name = "lblPulleyGearRatio" Me.lblPulleyGearRatio.Size = New System.Drawing.Size(81, 13) Me.lblPulleyGearRatio.TabIndex = 30 @@ -139,7 +139,7 @@ Namespace UI ' 'txtPulleyEfficiency ' - Me.txtPulleyEfficiency.Location = New System.Drawing.Point(250, 61) + Me.txtPulleyEfficiency.Location = New System.Drawing.Point(250, 114) Me.txtPulleyEfficiency.Name = "txtPulleyEfficiency" Me.txtPulleyEfficiency.Size = New System.Drawing.Size(41, 20) Me.txtPulleyEfficiency.TabIndex = 29 @@ -148,7 +148,7 @@ Namespace UI ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(602, 147) + Me.ClientSize = New System.Drawing.Size(652, 272) Me.Controls.Add(Me.lblPulleyGearRatio) Me.Controls.Add(Me.txtPulleyEfficiency) Me.Controls.Add(Me.lblMapLabel) diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb index 1de4c0354664162ce6306d5cc3108d6025bf3ad2..c0698effc39bad5059242e646f2947ac562bc52b 100644 --- a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb +++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb @@ -30,14 +30,10 @@ Me.txtMapFile = New System.Windows.Forms.TextBox() Me.lblMapFile = New System.Windows.Forms.Label() Me.pnlSearchBar = New System.Windows.Forms.Panel() - Me.txtPullyEfficiency = New System.Windows.Forms.TextBox() - Me.lblPullyEfficiency = New System.Windows.Forms.Label() Me.lblMechanicalDemand = New System.Windows.Forms.Label() Me.txtMechanicalDemand = New System.Windows.Forms.TextBox() Me.lblElectricalDemand = New System.Windows.Forms.Label() Me.txtElectricalDemand = New System.Windows.Forms.TextBox() - Me.lblPulleyGearRatio = New System.Windows.Forms.Label() - Me.txtPulleyGearRatio = New System.Windows.Forms.TextBox() CType(Me.dgMapResults, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' @@ -107,22 +103,6 @@ Me.pnlSearchBar.Size = New System.Drawing.Size(643, 59) Me.pnlSearchBar.TabIndex = 6 ' - 'txtPullyEfficiency - ' - Me.txtPullyEfficiency.Location = New System.Drawing.Point(102, 53) - Me.txtPullyEfficiency.Name = "txtPullyEfficiency" - Me.txtPullyEfficiency.Size = New System.Drawing.Size(35, 20) - Me.txtPullyEfficiency.TabIndex = 7 - ' - 'lblPullyEfficiency - ' - Me.lblPullyEfficiency.AutoSize = True - Me.lblPullyEfficiency.Location = New System.Drawing.Point(15, 57) - Me.lblPullyEfficiency.Name = "lblPullyEfficiency" - Me.lblPullyEfficiency.Size = New System.Drawing.Size(81, 13) - Me.lblPullyEfficiency.TabIndex = 8 - Me.lblPullyEfficiency.Text = " Pully Efficiency" - ' 'lblMechanicalDemand ' Me.lblMechanicalDemand.AutoSize = True @@ -159,35 +139,15 @@ Me.txtElectricalDemand.TabIndex = 12 Me.txtElectricalDemand.Text = "0" ' - 'lblPulleyGearRatio - ' - Me.lblPulleyGearRatio.AutoSize = True - Me.lblPulleyGearRatio.Location = New System.Drawing.Point(139, 57) - Me.lblPulleyGearRatio.Name = "lblPulleyGearRatio" - Me.lblPulleyGearRatio.Size = New System.Drawing.Size(86, 13) - Me.lblPulleyGearRatio.TabIndex = 14 - Me.lblPulleyGearRatio.Text = " Pully Gear Ratio" - ' - 'txtPulleyGearRatio - ' - Me.txtPulleyGearRatio.Location = New System.Drawing.Point(227, 53) - Me.txtPulleyGearRatio.Name = "txtPulleyGearRatio" - Me.txtPulleyGearRatio.Size = New System.Drawing.Size(39, 20) - Me.txtPulleyGearRatio.TabIndex = 13 - ' 'F_HVAC ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(674, 458) - Me.Controls.Add(Me.lblPulleyGearRatio) - Me.Controls.Add(Me.txtPulleyGearRatio) Me.Controls.Add(Me.txtElectricalDemand) Me.Controls.Add(Me.lblElectricalDemand) Me.Controls.Add(Me.txtMechanicalDemand) Me.Controls.Add(Me.lblMechanicalDemand) - Me.Controls.Add(Me.lblPullyEfficiency) - Me.Controls.Add(Me.txtPullyEfficiency) Me.Controls.Add(Me.pnlSearchBar) Me.Controls.Add(Me.lblMapFile) Me.Controls.Add(Me.txtMapFile) @@ -209,14 +169,10 @@ Friend WithEvents txtMapFile As System.Windows.Forms.TextBox Friend WithEvents lblMapFile As System.Windows.Forms.Label Friend WithEvents pnlSearchBar As System.Windows.Forms.Panel - Friend WithEvents txtPullyEfficiency As System.Windows.Forms.TextBox - Friend WithEvents lblPullyEfficiency As System.Windows.Forms.Label Friend WithEvents lblMechanicalDemand As System.Windows.Forms.Label Friend WithEvents txtMechanicalDemand As System.Windows.Forms.TextBox Friend WithEvents lblElectricalDemand As System.Windows.Forms.Label Friend WithEvents txtElectricalDemand As System.Windows.Forms.TextBox - Friend WithEvents lblPulleyGearRatio As System.Windows.Forms.Label - Friend WithEvents txtPulleyGearRatio As System.Windows.Forms.TextBox End Class diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb index 7a76289512e1db47c4dbed60696ad0a45413336c..a64fb575fcc3458c44944623e49eacf028239a87 100644 --- a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb +++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb @@ -10,6 +10,8 @@ Namespace UI Private _cfgPath As String Private _map As HVACMap Private _mapFilter As List(Of String) = New List(Of String)() + Private _selectedInputs As New Dictionary(Of String, String) + 'Properties Public Property MapPath As String @@ -25,6 +27,21 @@ Namespace UI End Property + Public Property Inputs As Dictionary(Of String, String) + + Get + Return _selectedInputs + End Get + + Private Set(value As Dictionary(Of String, String)) + _selectedInputs = value + End Set + + End Property + + + + 'Helpers Private Sub BuildSearchBar() @@ -113,6 +130,24 @@ Namespace UI End Sub + 'Constructors + Public Sub New() + + ' This call is required by the designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + + End Sub + + Public Sub New(ByVal iMapPath As String) + + Me.New() + + MapPath = iMapPath + + End Sub + 'Event Handlers '************** 'Programatically attached when filer is built @@ -147,43 +182,121 @@ Namespace UI End Sub Private Sub F_HVAC_Load(sender As Object, e As EventArgs) Handles MyBase.Load + 'If we have a map on load lets try and get the information + If (MapPath.Length <> 0) Then - End Sub - Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + GetMapData() + + End If End Sub - Private Sub btnBrowseMap_Click(sender As Object, e As EventArgs) Handles btnBrowseMap.Click - Dim openFileDialog1 = New OpenFileDialog() - openFileDialog1.InitialDirectory = "." - openFileDialog1.Filter = "Map Files (*.vaux)|*.vaux" - openFileDialog1.FilterIndex = 1 - openFileDialog1.RestoreDirectory = True + Private Sub GetMapData() - openFileDialog1.ShowDialog(Me) - MapPath = openFileDialog1.FileName + 'Dim openFileDialog1 = New OpenFileDialog() - openFileDialog1.Dispose() + 'openFileDialog1.InitialDirectory = "." + 'openFileDialog1.Filter = "Map Files (*.vaux)|*.vaux" + 'openFileDialog1.FilterIndex = 1 + 'openFileDialog1.RestoreDirectory = True - _map = New HVACMap(_mapPath) + 'openFileDialog1.ShowDialog(Me) + 'MapPath = openFileDialog1.FileName - _map.Initialise() + 'openFileDialog1.Dispose() + + Try + + _map = New HVACMap(_mapPath) + _map.Initialise() + + _mapFilter.Clear() + For Each item As KeyValuePair(Of String, HVACMapParameter) In _map.GetMapHeaders + _mapFilter.Add("") + Next + + BuildSearchBar() + + Catch ex As Exception + + MessageBox.Show("An error has occured while trying to read the map file selected ") + 'TODO:Log this error message. + DialogResult = Windows.Forms.DialogResult.Abort + Me.Close() + + End Try + + + + + + End Sub + + + + Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click + + DialogResult = Windows.Forms.DialogResult.OK + + End Sub + Private Sub btnBrowseMap_Click(sender As Object, e As EventArgs) Handles btnBrowseMap.Click - _mapFilter.Clear() - For Each item As KeyValuePair(Of String, HVACMapParameter) In _map.GetMapHeaders - _mapFilter.Add("") - Next - BuildSearchBar() End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click + + DialogResult = Windows.Forms.DialogResult.Cancel Me.Close() + End Sub + + + Private Sub F_HVAC_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing + + 'If closing as a result of OK being pressed + Select DialogResult + + + Case Windows.Forms.DialogResult.OK + + If (Me.dgMapResults.Rows.Count > 0 AndAlso Me.dgMapResults.SelectedRows.Count = 1) Then + + Inputs.Clear() + + 'Build a list of Inputs + For Each p As HVACMapParameter In _map.MapHeaders.OrderBy(Function(x) x.Value.OrdinalPosition).Select(Function(x) x.Value) + Dim val As String = Me.dgMapResults.SelectedRows(0).Cells(p.OrdinalPosition).Value.ToString() + If Not p.IsOutput Then + Inputs.Add(p.Name, val) + End If + Next + Else + 'Cancel the event as nothing has been selected althoug the users has pressed the ok button indicating a submit. + MessageBox.Show("You do not have a selected row.") + e.Cancel = True + End If + + Case Else + Inputs.Clear() + txtMapFile.Text = String.Empty + + + + End Select + + + + + + + + End Sub + End Class diff --git a/packages/NUnit.2.6.2/NUnit.2.6.2.nupkg b/packages/NUnit.2.6.2/NUnit.2.6.2.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..26f15bdc7f1075d97c4e8bdd2ee9bdaf7833fcb6 Binary files /dev/null and b/packages/NUnit.2.6.2/NUnit.2.6.2.nupkg differ diff --git a/packages/NUnit.2.6.2/NUnit.2.6.2.nuspec b/packages/NUnit.2.6.2/NUnit.2.6.2.nuspec new file mode 100644 index 0000000000000000000000000000000000000000..dc58abdb5f79d63ebb293608b06644504b7715f9 --- /dev/null +++ b/packages/NUnit.2.6.2/NUnit.2.6.2.nuspec @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> + <metadata> + <id>NUnit</id> + <version>2.6.2</version> + <title>NUnit</title> + <authors>Charlie Poole</authors> + <owners>Charlie Poole</owners> + <licenseUrl>http://nunit.org/nuget/license.html</licenseUrl> + <projectUrl>http://nunit.org/</projectUrl> + <iconUrl>http://nunit.org/nuget/nunit_32x32.png</iconUrl> + <requireLicenseAcceptance>false</requireLicenseAcceptance> + <description>NUnit features a fluent assert syntax, parameterized, generic and theory tests and is user-extensible. A number of runners, both from the NUnit project and by third parties, are able to execute NUnit tests. + +Version 2.6 is the seventh major release of this well-known and well-tested programming tool. + +This package includes only the framework assembly. You will need to install the NUnit.Runners package unless you are using a third-party runner.</description> + <summary>NUnit is a unit-testing framework for all .Net languages with a strong TDD focus.</summary> + <releaseNotes>Version 2.6 is the seventh major release of NUnit. + +Unlike earlier versions, this package includes only the framework assembly. You will need to install the NUnit.Runners package unless you are using a third-party runner. + +The nunit.mocks assembly is now provided by the NUnit.Mocks package. The pnunit.framework assembly is provided by the pNUnit package.</releaseNotes> + <copyright /> + <language>en-US</language> + <tags>test testing tdd framework fluent assert theory plugin addin</tags> + </metadata> +</package> \ No newline at end of file diff --git a/packages/NUnit.2.6.2/lib/nunit.framework.dll b/packages/NUnit.2.6.2/lib/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..3e24ba1ca6260d7d0499624d13d2c5a2cd75b52a Binary files /dev/null and b/packages/NUnit.2.6.2/lib/nunit.framework.dll differ diff --git a/packages/NUnit.2.6.2/lib/nunit.framework.xml b/packages/NUnit.2.6.2/lib/nunit.framework.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0bd9cbbab9566080ac1b9f36a43b829b08995b0 --- /dev/null +++ b/packages/NUnit.2.6.2/lib/nunit.framework.xml @@ -0,0 +1,10899 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>nunit.framework</name> + </assembly> + <members> + <member name="T:NUnit.Framework.CategoryAttribute"> + <summary> + Attribute used to apply a category to a test + </summary> + </member> + <member name="F:NUnit.Framework.CategoryAttribute.categoryName"> + <summary> + The name of the category + </summary> + </member> + <member name="M:NUnit.Framework.CategoryAttribute.#ctor(System.String)"> + <summary> + Construct attribute for a given category based on + a name. The name may not contain the characters ',', + '+', '-' or '!'. However, this is not checked in the + constructor since it would cause an error to arise at + as the test was loaded without giving a clear indication + of where the problem is located. The error is handled + in NUnitFramework.cs by marking the test as not + runnable. + </summary> + <param name="name">The name of the category</param> + </member> + <member name="M:NUnit.Framework.CategoryAttribute.#ctor"> + <summary> + Protected constructor uses the Type name as the name + of the category. + </summary> + </member> + <member name="P:NUnit.Framework.CategoryAttribute.Name"> + <summary> + The name of the category + </summary> + </member> + <member name="T:NUnit.Framework.DatapointAttribute"> + <summary> + Used to mark a field for use as a datapoint when executing a theory + within the same fixture that requires an argument of the field's Type. + </summary> + </member> + <member name="T:NUnit.Framework.DatapointsAttribute"> + <summary> + Used to mark an array as containing a set of datapoints to be used + executing a theory within the same fixture that requires an argument + of the Type of the array elements. + </summary> + </member> + <member name="T:NUnit.Framework.DescriptionAttribute"> + <summary> + Attribute used to provide descriptive text about a + test case or fixture. + </summary> + </member> + <member name="M:NUnit.Framework.DescriptionAttribute.#ctor(System.String)"> + <summary> + Construct the attribute + </summary> + <param name="description">Text describing the test</param> + </member> + <member name="P:NUnit.Framework.DescriptionAttribute.Description"> + <summary> + Gets the test description + </summary> + </member> + <member name="T:NUnit.Framework.MessageMatch"> + <summary> + Enumeration indicating how the expected message parameter is to be used + </summary> + </member> + <member name="F:NUnit.Framework.MessageMatch.Exact"> + Expect an exact match + </member> + <member name="F:NUnit.Framework.MessageMatch.Contains"> + Expect a message containing the parameter string + </member> + <member name="F:NUnit.Framework.MessageMatch.Regex"> + Match the regular expression provided as a parameter + </member> + <member name="F:NUnit.Framework.MessageMatch.StartsWith"> + Expect a message that starts with the parameter string + </member> + <member name="T:NUnit.Framework.ExpectedExceptionAttribute"> + <summary> + ExpectedExceptionAttribute + </summary> + + </member> + <member name="M:NUnit.Framework.ExpectedExceptionAttribute.#ctor"> + <summary> + Constructor for a non-specific exception + </summary> + </member> + <member name="M:NUnit.Framework.ExpectedExceptionAttribute.#ctor(System.Type)"> + <summary> + Constructor for a given type of exception + </summary> + <param name="exceptionType">The type of the expected exception</param> + </member> + <member name="M:NUnit.Framework.ExpectedExceptionAttribute.#ctor(System.String)"> + <summary> + Constructor for a given exception name + </summary> + <param name="exceptionName">The full name of the expected exception</param> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.ExpectedException"> + <summary> + Gets or sets the expected exception type + </summary> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.ExpectedExceptionName"> + <summary> + Gets or sets the full Type name of the expected exception + </summary> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.ExpectedMessage"> + <summary> + Gets or sets the expected message text + </summary> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.UserMessage"> + <summary> + Gets or sets the user message displayed in case of failure + </summary> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.MatchType"> + <summary> + Gets or sets the type of match to be performed on the expected message + </summary> + </member> + <member name="P:NUnit.Framework.ExpectedExceptionAttribute.Handler"> + <summary> + Gets the name of a method to be used as an exception handler + </summary> + </member> + <member name="T:NUnit.Framework.ExplicitAttribute"> + <summary> + ExplicitAttribute marks a test or test fixture so that it will + only be run if explicitly executed from the gui or command line + or if it is included by use of a filter. The test will not be + run simply because an enclosing suite is run. + </summary> + </member> + <member name="M:NUnit.Framework.ExplicitAttribute.#ctor"> + <summary> + Default constructor + </summary> + </member> + <member name="M:NUnit.Framework.ExplicitAttribute.#ctor(System.String)"> + <summary> + Constructor with a reason + </summary> + <param name="reason">The reason test is marked explicit</param> + </member> + <member name="P:NUnit.Framework.ExplicitAttribute.Reason"> + <summary> + The reason test is marked explicit + </summary> + </member> + <member name="T:NUnit.Framework.IgnoreAttribute"> + <summary> + Attribute used to mark a test that is to be ignored. + Ignored tests result in a warning message when the + tests are run. + </summary> + </member> + <member name="M:NUnit.Framework.IgnoreAttribute.#ctor"> + <summary> + Constructs the attribute without giving a reason + for ignoring the test. + </summary> + </member> + <member name="M:NUnit.Framework.IgnoreAttribute.#ctor(System.String)"> + <summary> + Constructs the attribute giving a reason for ignoring the test + </summary> + <param name="reason">The reason for ignoring the test</param> + </member> + <member name="P:NUnit.Framework.IgnoreAttribute.Reason"> + <summary> + The reason for ignoring a test + </summary> + </member> + <member name="T:NUnit.Framework.IncludeExcludeAttribute"> + <summary> + Abstract base for Attributes that are used to include tests + in the test run based on environmental settings. + </summary> + </member> + <member name="M:NUnit.Framework.IncludeExcludeAttribute.#ctor"> + <summary> + Constructor with no included items specified, for use + with named property syntax. + </summary> + </member> + <member name="M:NUnit.Framework.IncludeExcludeAttribute.#ctor(System.String)"> + <summary> + Constructor taking one or more included items + </summary> + <param name="include">Comma-delimited list of included items</param> + </member> + <member name="P:NUnit.Framework.IncludeExcludeAttribute.Include"> + <summary> + Name of the item that is needed in order for + a test to run. Multiple itemss may be given, + separated by a comma. + </summary> + </member> + <member name="P:NUnit.Framework.IncludeExcludeAttribute.Exclude"> + <summary> + Name of the item to be excluded. Multiple items + may be given, separated by a comma. + </summary> + </member> + <member name="P:NUnit.Framework.IncludeExcludeAttribute.Reason"> + <summary> + The reason for including or excluding the test + </summary> + </member> + <member name="T:NUnit.Framework.PlatformAttribute"> + <summary> + PlatformAttribute is used to mark a test fixture or an + individual method as applying to a particular platform only. + </summary> + </member> + <member name="M:NUnit.Framework.PlatformAttribute.#ctor"> + <summary> + Constructor with no platforms specified, for use + with named property syntax. + </summary> + </member> + <member name="M:NUnit.Framework.PlatformAttribute.#ctor(System.String)"> + <summary> + Constructor taking one or more platforms + </summary> + <param name="platforms">Comma-deliminted list of platforms</param> + </member> + <member name="T:NUnit.Framework.CultureAttribute"> + <summary> + CultureAttribute is used to mark a test fixture or an + individual method as applying to a particular Culture only. + </summary> + </member> + <member name="M:NUnit.Framework.CultureAttribute.#ctor"> + <summary> + Constructor with no cultures specified, for use + with named property syntax. + </summary> + </member> + <member name="M:NUnit.Framework.CultureAttribute.#ctor(System.String)"> + <summary> + Constructor taking one or more cultures + </summary> + <param name="cultures">Comma-deliminted list of cultures</param> + </member> + <member name="T:NUnit.Framework.CombinatorialAttribute"> + <summary> + Marks a test to use a combinatorial join of any argument data + provided. NUnit will create a test case for every combination of + the arguments provided. This can result in a large number of test + cases and so should be used judiciously. This is the default join + type, so the attribute need not be used except as documentation. + </summary> + </member> + <member name="T:NUnit.Framework.PropertyAttribute"> + <summary> + PropertyAttribute is used to attach information to a test as a name/value pair.. + </summary> + </member> + <member name="M:NUnit.Framework.PropertyAttribute.#ctor(System.String,System.String)"> + <summary> + Construct a PropertyAttribute with a name and string value + </summary> + <param name="propertyName">The name of the property</param> + <param name="propertyValue">The property value</param> + </member> + <member name="M:NUnit.Framework.PropertyAttribute.#ctor(System.String,System.Int32)"> + <summary> + Construct a PropertyAttribute with a name and int value + </summary> + <param name="propertyName">The name of the property</param> + <param name="propertyValue">The property value</param> + </member> + <member name="M:NUnit.Framework.PropertyAttribute.#ctor(System.String,System.Double)"> + <summary> + Construct a PropertyAttribute with a name and double value + </summary> + <param name="propertyName">The name of the property</param> + <param name="propertyValue">The property value</param> + </member> + <member name="M:NUnit.Framework.PropertyAttribute.#ctor"> + <summary> + Constructor for derived classes that set the + property dictionary directly. + </summary> + </member> + <member name="M:NUnit.Framework.PropertyAttribute.#ctor(System.Object)"> + <summary> + Constructor for use by derived classes that use the + name of the type as the property name. Derived classes + must ensure that the Type of the property value is + a standard type supported by the BCL. Any custom + types will cause a serialization Exception when + in the client. + </summary> + </member> + <member name="P:NUnit.Framework.PropertyAttribute.Properties"> + <summary> + Gets the property dictionary for this attribute + </summary> + </member> + <member name="M:NUnit.Framework.CombinatorialAttribute.#ctor"> + <summary> + Default constructor + </summary> + </member> + <member name="T:NUnit.Framework.PairwiseAttribute"> + <summary> + Marks a test to use pairwise join of any argument data provided. + NUnit will attempt too excercise every pair of argument values at + least once, using as small a number of test cases as it can. With + only two arguments, this is the same as a combinatorial join. + </summary> + </member> + <member name="M:NUnit.Framework.PairwiseAttribute.#ctor"> + <summary> + Default constructor + </summary> + </member> + <member name="T:NUnit.Framework.SequentialAttribute"> + <summary> + Marks a test to use a sequential join of any argument data + provided. NUnit will use arguements for each parameter in + sequence, generating test cases up to the largest number + of argument values provided and using null for any arguments + for which it runs out of values. Normally, this should be + used with the same number of arguments for each parameter. + </summary> + </member> + <member name="M:NUnit.Framework.SequentialAttribute.#ctor"> + <summary> + Default constructor + </summary> + </member> + <member name="T:NUnit.Framework.MaxTimeAttribute"> + <summary> + Summary description for MaxTimeAttribute. + </summary> + </member> + <member name="M:NUnit.Framework.MaxTimeAttribute.#ctor(System.Int32)"> + <summary> + Construct a MaxTimeAttribute, given a time in milliseconds. + </summary> + <param name="milliseconds">The maximum elapsed time in milliseconds</param> + </member> + <member name="T:NUnit.Framework.RandomAttribute"> + <summary> + RandomAttribute is used to supply a set of random values + to a single parameter of a parameterized test. + </summary> + </member> + <member name="T:NUnit.Framework.ValuesAttribute"> + <summary> + ValuesAttribute is used to provide literal arguments for + an individual parameter of a test. + </summary> + </member> + <member name="T:NUnit.Framework.ParameterDataAttribute"> + <summary> + Abstract base class for attributes that apply to parameters + and supply data for the parameter. + </summary> + </member> + <member name="M:NUnit.Framework.ParameterDataAttribute.GetData(System.Reflection.ParameterInfo)"> + <summary> + Gets the data to be provided to the specified parameter + </summary> + </member> + <member name="F:NUnit.Framework.ValuesAttribute.data"> + <summary> + The collection of data to be returned. Must + be set by any derived attribute classes. + We use an object[] so that the individual + elements may have their type changed in GetData + if necessary. + </summary> + </member> + <member name="M:NUnit.Framework.ValuesAttribute.#ctor(System.Object)"> + <summary> + Construct with one argument + </summary> + <param name="arg1"></param> + </member> + <member name="M:NUnit.Framework.ValuesAttribute.#ctor(System.Object,System.Object)"> + <summary> + Construct with two arguments + </summary> + <param name="arg1"></param> + <param name="arg2"></param> + </member> + <member name="M:NUnit.Framework.ValuesAttribute.#ctor(System.Object,System.Object,System.Object)"> + <summary> + Construct with three arguments + </summary> + <param name="arg1"></param> + <param name="arg2"></param> + <param name="arg3"></param> + </member> + <member name="M:NUnit.Framework.ValuesAttribute.#ctor(System.Object[])"> + <summary> + Construct with an array of arguments + </summary> + <param name="args"></param> + </member> + <member name="M:NUnit.Framework.ValuesAttribute.GetData(System.Reflection.ParameterInfo)"> + <summary> + Get the collection of values to be used as arguments + </summary> + </member> + <member name="M:NUnit.Framework.RandomAttribute.#ctor(System.Int32)"> + <summary> + Construct a set of doubles from 0.0 to 1.0, + specifying only the count. + </summary> + <param name="count"></param> + </member> + <member name="M:NUnit.Framework.RandomAttribute.#ctor(System.Double,System.Double,System.Int32)"> + <summary> + Construct a set of doubles from min to max + </summary> + <param name="min"></param> + <param name="max"></param> + <param name="count"></param> + </member> + <member name="M:NUnit.Framework.RandomAttribute.#ctor(System.Int32,System.Int32,System.Int32)"> + <summary> + Construct a set of ints from min to max + </summary> + <param name="min"></param> + <param name="max"></param> + <param name="count"></param> + </member> + <member name="M:NUnit.Framework.RandomAttribute.GetData(System.Reflection.ParameterInfo)"> + <summary> + Get the collection of values to be used as arguments + </summary> + </member> + <member name="T:NUnit.Framework.RangeAttribute"> + <summary> + RangeAttribute is used to supply a range of values to an + individual parameter of a parameterized test. + </summary> + </member> + <member name="M:NUnit.Framework.RangeAttribute.#ctor(System.Int32,System.Int32)"> + <summary> + Construct a range of ints using default step of 1 + </summary> + <param name="from"></param> + <param name="to"></param> + </member> + <member name="M:NUnit.Framework.RangeAttribute.#ctor(System.Int32,System.Int32,System.Int32)"> + <summary> + Construct a range of ints specifying the step size + </summary> + <param name="from"></param> + <param name="to"></param> + <param name="step"></param> + </member> + <member name="M:NUnit.Framework.RangeAttribute.#ctor(System.Int64,System.Int64,System.Int64)"> + <summary> + Construct a range of longs + </summary> + <param name="from"></param> + <param name="to"></param> + <param name="step"></param> + </member> + <member name="M:NUnit.Framework.RangeAttribute.#ctor(System.Double,System.Double,System.Double)"> + <summary> + Construct a range of doubles + </summary> + <param name="from"></param> + <param name="to"></param> + <param name="step"></param> + </member> + <member name="M:NUnit.Framework.RangeAttribute.#ctor(System.Single,System.Single,System.Single)"> + <summary> + Construct a range of floats + </summary> + <param name="from"></param> + <param name="to"></param> + <param name="step"></param> + </member> + <member name="T:NUnit.Framework.RepeatAttribute"> + <summary> + RepeatAttribute may be applied to test case in order + to run it multiple times. + </summary> + </member> + <member name="M:NUnit.Framework.RepeatAttribute.#ctor(System.Int32)"> + <summary> + Construct a RepeatAttribute + </summary> + <param name="count">The number of times to run the test</param> + </member> + <member name="T:NUnit.Framework.RequiredAddinAttribute"> + <summary> + RequiredAddinAttribute may be used to indicate the names of any addins + that must be present in order to run some or all of the tests in an + assembly. If the addin is not loaded, the entire assembly is marked + as NotRunnable. + </summary> + </member> + <member name="M:NUnit.Framework.RequiredAddinAttribute.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:RequiredAddinAttribute"/> class. + </summary> + <param name="requiredAddin">The required addin.</param> + </member> + <member name="P:NUnit.Framework.RequiredAddinAttribute.RequiredAddin"> + <summary> + Gets the name of required addin. + </summary> + <value>The required addin name.</value> + </member> + <member name="T:NUnit.Framework.SetCultureAttribute"> + <summary> + Summary description for SetCultureAttribute. + </summary> + </member> + <member name="M:NUnit.Framework.SetCultureAttribute.#ctor(System.String)"> + <summary> + Construct given the name of a culture + </summary> + <param name="culture"></param> + </member> + <member name="T:NUnit.Framework.SetUICultureAttribute"> + <summary> + Summary description for SetUICultureAttribute. + </summary> + </member> + <member name="M:NUnit.Framework.SetUICultureAttribute.#ctor(System.String)"> + <summary> + Construct given the name of a culture + </summary> + <param name="culture"></param> + </member> + <member name="T:NUnit.Framework.SetUpAttribute"> + <summary> + SetUpAttribute is used in a TestFixture to identify a method + that is called immediately before each test is run. It is + also used in a SetUpFixture to identify the method that is + called once, before any of the subordinate tests are run. + </summary> + </member> + <member name="T:NUnit.Framework.SetUpFixtureAttribute"> + <summary> + Attribute used to mark a class that contains one-time SetUp + and/or TearDown methods that apply to all the tests in a + namespace or an assembly. + </summary> + </member> + <member name="T:NUnit.Framework.SuiteAttribute"> + <summary> + Attribute used to mark a static (shared in VB) property + that returns a list of tests. + </summary> + </member> + <member name="T:NUnit.Framework.TearDownAttribute"> + <summary> + Attribute used in a TestFixture to identify a method that is + called immediately after each test is run. It is also used + in a SetUpFixture to identify the method that is called once, + after all subordinate tests have run. In either case, the method + is guaranteed to be called, even if an exception is thrown. + </summary> + </member> + <member name="T:NUnit.Framework.TestActionAttribute"> + <summary> + Provide actions to execute before and after tests. + </summary> + </member> + <member name="T:NUnit.Framework.ITestAction"> + <summary> + When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. + </summary> + </member> + <member name="M:NUnit.Framework.ITestAction.BeforeTest(NUnit.Framework.TestDetails)"> + <summary> + Executed before each test is run + </summary> + <param name="testDetails">Provides details about the test that is going to be run.</param> + </member> + <member name="M:NUnit.Framework.ITestAction.AfterTest(NUnit.Framework.TestDetails)"> + <summary> + Executed after each test is run + </summary> + <param name="testDetails">Provides details about the test that has just been run.</param> + </member> + <member name="P:NUnit.Framework.ITestAction.Targets"> + <summary> + Provides the target for the action attribute + </summary> + <returns>The target for the action attribute</returns> + </member> + <member name="T:NUnit.Framework.TestAttribute"> + <summary> + Adding this attribute to a method within a <seealso cref="T:NUnit.Framework.TestFixtureAttribute"/> + class makes the method callable from the NUnit test runner. There is a property + called Description which is optional which you can provide a more detailed test + description. This class cannot be inherited. + </summary> + + <example> + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + publc void TestDescriptionMethod() + {} + } + </example> + + </member> + <member name="P:NUnit.Framework.TestAttribute.Description"> + <summary> + Descriptive text for this test + </summary> + </member> + <member name="T:NUnit.Framework.TestCaseAttribute"> + <summary> + TestCaseAttribute is used to mark parameterized test cases + and provide them with their arguments. + </summary> + </member> + <member name="T:NUnit.Framework.ITestCaseData"> + <summary> + The ITestCaseData interface is implemented by a class + that is able to return complete testcases for use by + a parameterized test method. + + NOTE: This interface is used in both the framework + and the core, even though that results in two different + types. However, sharing the source code guarantees that + the various implementations will be compatible and that + the core is able to reflect successfully over the + framework implementations of ITestCaseData. + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.Arguments"> + <summary> + Gets the argument list to be provided to the test + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.Result"> + <summary> + Gets the expected result + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.HasExpectedResult"> + <summary> + Indicates whether a result has been specified. + This is necessary because the result may be + null, so it's value cannot be checked. + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.ExpectedException"> + <summary> + Gets the expected exception Type + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.ExpectedExceptionName"> + <summary> + Gets the FullName of the expected exception + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.TestName"> + <summary> + Gets the name to be used for the test + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.Description"> + <summary> + Gets the description of the test + </summary> + </member> + <member name="P:NUnit.Framework.ITestCaseData.Ignored"> + <summary> + Gets a value indicating whether this <see cref="T:NUnit.Framework.ITestCaseData"/> is ignored. + </summary> + <value><c>true</c> if ignored; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.ITestCaseData.Explicit"> + <summary> + Gets a value indicating whether this <see cref="T:NUnit.Framework.ITestCaseData"/> is explicit. + </summary> + <value><c>true</c> if explicit; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.ITestCaseData.IgnoreReason"> + <summary> + Gets the ignore reason. + </summary> + <value>The ignore reason.</value> + </member> + <member name="M:NUnit.Framework.TestCaseAttribute.#ctor(System.Object[])"> + <summary> + Construct a TestCaseAttribute with a list of arguments. + This constructor is not CLS-Compliant + </summary> + <param name="arguments"></param> + </member> + <member name="M:NUnit.Framework.TestCaseAttribute.#ctor(System.Object)"> + <summary> + Construct a TestCaseAttribute with a single argument + </summary> + <param name="arg"></param> + </member> + <member name="M:NUnit.Framework.TestCaseAttribute.#ctor(System.Object,System.Object)"> + <summary> + Construct a TestCaseAttribute with a two arguments + </summary> + <param name="arg1"></param> + <param name="arg2"></param> + </member> + <member name="M:NUnit.Framework.TestCaseAttribute.#ctor(System.Object,System.Object,System.Object)"> + <summary> + Construct a TestCaseAttribute with a three arguments + </summary> + <param name="arg1"></param> + <param name="arg2"></param> + <param name="arg3"></param> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Arguments"> + <summary> + Gets the list of arguments to a test case + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Result"> + <summary> + Gets or sets the expected result. Use + ExpectedResult by preference. + </summary> + <value>The result.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.ExpectedResult"> + <summary> + Gets or sets the expected result. + </summary> + <value>The result.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.HasExpectedResult"> + <summary> + Gets a flag indicating whether an expected + result has been set. + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Categories"> + <summary> + Gets a list of categories associated with this test; + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Category"> + <summary> + Gets or sets the category associated with this test. + May be a single category or a comma-separated list. + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.ExpectedException"> + <summary> + Gets or sets the expected exception. + </summary> + <value>The expected exception.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.ExpectedExceptionName"> + <summary> + Gets or sets the name the expected exception. + </summary> + <value>The expected name of the exception.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.ExpectedMessage"> + <summary> + Gets or sets the expected message of the expected exception + </summary> + <value>The expected message of the exception.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.MatchType"> + <summary> + Gets or sets the type of match to be performed on the expected message + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Description"> + <summary> + Gets or sets the description. + </summary> + <value>The description.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.TestName"> + <summary> + Gets or sets the name of the test. + </summary> + <value>The name of the test.</value> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Ignore"> + <summary> + Gets or sets the ignored status of the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Ignored"> + <summary> + Gets or sets the ignored status of the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Explicit"> + <summary> + Gets or sets the explicit status of the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.Reason"> + <summary> + Gets or sets the reason for not running the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseAttribute.IgnoreReason"> + <summary> + Gets or sets the reason for not running the test. + Set has the side effect of marking the test as ignored. + </summary> + <value>The ignore reason.</value> + </member> + <member name="T:NUnit.Framework.TestCaseSourceAttribute"> + <summary> + FactoryAttribute indicates the source to be used to + provide test cases for a test method. + </summary> + </member> + <member name="M:NUnit.Framework.TestCaseSourceAttribute.#ctor(System.String)"> + <summary> + Construct with the name of the data source, which must + be a property, field or method of the test class itself. + </summary> + <param name="sourceName">An array of the names of the factories that will provide data</param> + </member> + <member name="M:NUnit.Framework.TestCaseSourceAttribute.#ctor(System.Type)"> + <summary> + Construct with a Type, which must implement IEnumerable + </summary> + <param name="sourceType">The Type that will provide data</param> + </member> + <member name="M:NUnit.Framework.TestCaseSourceAttribute.#ctor(System.Type,System.String)"> + <summary> + Construct with a Type and name. + that don't support params arrays. + </summary> + <param name="sourceType">The Type that will provide data</param> + <param name="sourceName">The name of the method, property or field that will provide data</param> + </member> + <member name="P:NUnit.Framework.TestCaseSourceAttribute.SourceName"> + <summary> + The name of a the method, property or fiend to be used as a source + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseSourceAttribute.SourceType"> + <summary> + A Type to be used as a source + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseSourceAttribute.Category"> + <summary> + Gets or sets the category associated with this test. + May be a single category or a comma-separated list. + </summary> + </member> + <member name="T:NUnit.Framework.TestFixtureAttribute"> + <example> + [TestFixture] + public class ExampleClass + {} + </example> + </member> + <member name="M:NUnit.Framework.TestFixtureAttribute.#ctor"> + <summary> + Default constructor + </summary> + </member> + <member name="M:NUnit.Framework.TestFixtureAttribute.#ctor(System.Object[])"> + <summary> + Construct with a object[] representing a set of arguments. + In .NET 2.0, the arguments may later be separated into + type arguments and constructor arguments. + </summary> + <param name="arguments"></param> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.Description"> + <summary> + Descriptive text for this fixture + </summary> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.Category"> + <summary> + Gets and sets the category for this fixture. + May be a comma-separated list of categories. + </summary> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.Categories"> + <summary> + Gets a list of categories for this fixture + </summary> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.Arguments"> + <summary> + The arguments originally provided to the attribute + </summary> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.Ignore"> + <summary> + Gets or sets a value indicating whether this <see cref="T:NUnit.Framework.TestFixtureAttribute"/> should be ignored. + </summary> + <value><c>true</c> if ignore; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.IgnoreReason"> + <summary> + Gets or sets the ignore reason. May set Ignored as a side effect. + </summary> + <value>The ignore reason.</value> + </member> + <member name="P:NUnit.Framework.TestFixtureAttribute.TypeArgs"> + <summary> + Get or set the type arguments. If not set + explicitly, any leading arguments that are + Types are taken as type arguments. + </summary> + </member> + <member name="T:NUnit.Framework.TestFixtureSetUpAttribute"> + <summary> + Attribute used to identify a method that is + called before any tests in a fixture are run. + </summary> + </member> + <member name="T:NUnit.Framework.TestFixtureTearDownAttribute"> + <summary> + Attribute used to identify a method that is called after + all the tests in a fixture have run. The method is + guaranteed to be called, even if an exception is thrown. + </summary> + </member> + <member name="T:NUnit.Framework.TheoryAttribute"> + <summary> + Adding this attribute to a method within a <seealso cref="T:NUnit.Framework.TestFixtureAttribute"/> + class makes the method callable from the NUnit test runner. There is a property + called Description which is optional which you can provide a more detailed test + description. This class cannot be inherited. + </summary> + + <example> + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + publc void TestDescriptionMethod() + {} + } + </example> + + </member> + <member name="T:NUnit.Framework.TimeoutAttribute"> + <summary> + Used on a method, marks the test with a timeout value in milliseconds. + The test will be run in a separate thread and is cancelled if the timeout + is exceeded. Used on a method or assembly, sets the default timeout + for all contained test methods. + </summary> + </member> + <member name="M:NUnit.Framework.TimeoutAttribute.#ctor(System.Int32)"> + <summary> + Construct a TimeoutAttribute given a time in milliseconds + </summary> + <param name="timeout">The timeout value in milliseconds</param> + </member> + <member name="T:NUnit.Framework.RequiresSTAAttribute"> + <summary> + Marks a test that must run in the STA, causing it + to run in a separate thread if necessary. + + On methods, you may also use STAThreadAttribute + to serve the same purpose. + </summary> + </member> + <member name="M:NUnit.Framework.RequiresSTAAttribute.#ctor"> + <summary> + Construct a RequiresSTAAttribute + </summary> + </member> + <member name="T:NUnit.Framework.RequiresMTAAttribute"> + <summary> + Marks a test that must run in the MTA, causing it + to run in a separate thread if necessary. + + On methods, you may also use MTAThreadAttribute + to serve the same purpose. + </summary> + </member> + <member name="M:NUnit.Framework.RequiresMTAAttribute.#ctor"> + <summary> + Construct a RequiresMTAAttribute + </summary> + </member> + <member name="T:NUnit.Framework.RequiresThreadAttribute"> + <summary> + Marks a test that must run on a separate thread. + </summary> + </member> + <member name="M:NUnit.Framework.RequiresThreadAttribute.#ctor"> + <summary> + Construct a RequiresThreadAttribute + </summary> + </member> + <member name="M:NUnit.Framework.RequiresThreadAttribute.#ctor(System.Threading.ApartmentState)"> + <summary> + Construct a RequiresThreadAttribute, specifying the apartment + </summary> + </member> + <member name="T:NUnit.Framework.ValueSourceAttribute"> + <summary> + ValueSourceAttribute indicates the source to be used to + provide data for one parameter of a test method. + </summary> + </member> + <member name="M:NUnit.Framework.ValueSourceAttribute.#ctor(System.String)"> + <summary> + Construct with the name of the factory - for use with languages + that don't support params arrays. + </summary> + <param name="sourceName">The name of the data source to be used</param> + </member> + <member name="M:NUnit.Framework.ValueSourceAttribute.#ctor(System.Type,System.String)"> + <summary> + Construct with a Type and name - for use with languages + that don't support params arrays. + </summary> + <param name="sourceType">The Type that will provide data</param> + <param name="sourceName">The name of the method, property or field that will provide data</param> + </member> + <member name="P:NUnit.Framework.ValueSourceAttribute.SourceName"> + <summary> + The name of a the method, property or fiend to be used as a source + </summary> + </member> + <member name="P:NUnit.Framework.ValueSourceAttribute.SourceType"> + <summary> + A Type to be used as a source + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.AttributeExistsConstraint"> + <summary> + AttributeExistsConstraint tests for the presence of a + specified attribute on a Type. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.Constraint"> + <summary> + The Constraint class is the base of all built-in constraints + within NUnit. It provides the operator overloads used to combine + constraints. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.IResolveConstraint"> + <summary> + The IConstraintExpression interface is implemented by all + complete and resolvable constraints and expressions. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.IResolveConstraint.Resolve"> + <summary> + Return the top-level constraint for this expression + </summary> + <returns></returns> + </member> + <member name="F:NUnit.Framework.Constraints.Constraint.UNSET"> + <summary> + Static UnsetObject used to detect derived constraints + failing to set the actual value. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.Constraint.actual"> + <summary> + The actual value being tested against a constraint + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.Constraint.displayName"> + <summary> + The display name of this Constraint for use by ToString() + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.Constraint.argcnt"> + <summary> + Argument fields used by ToString(); + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.Constraint.builder"> + <summary> + The builder holding this constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.#ctor"> + <summary> + Construct a constraint with no arguments + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.#ctor(System.Object)"> + <summary> + Construct a constraint with one argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.#ctor(System.Object,System.Object)"> + <summary> + Construct a constraint with two arguments + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.SetBuilder(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Sets the ConstraintBuilder holding this constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.WriteMessageTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the failure message to the MessageWriter provided + as an argument. The default implementation simply passes + the constraint and the actual value to the writer, which + then displays the constraint description and the value. + + Constraints that need to provide additional details, + such as where the error occured can override this. + </summary> + <param name="writer">The MessageWriter on which to display the message</param> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.Matches(NUnit.Framework.Constraints.ActualValueDelegate)"> + <summary> + Test whether the constraint is satisfied by an + ActualValueDelegate that returns the value to be tested. + The default implementation simply evaluates the delegate + but derived classes may override it to provide for delayed + processing. + </summary> + <param name="del">An ActualValueDelegate</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.Matches``1(``0@)"> + <summary> + Test whether the constraint is satisfied by a given reference. + The default implementation simply dereferences the value but + derived classes may override it to provide for delayed processing. + </summary> + <param name="actual">A reference to the value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.ToString"> + <summary> + Default override of ToString returns the constraint DisplayName + followed by any arguments within angle brackets. + </summary> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.GetStringRepresentation"> + <summary> + Returns the string representation of this constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.op_BitwiseAnd(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.op_BitwiseOr(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.op_LogicalNot(NUnit.Framework.Constraints.Constraint)"> + <summary> + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.After(System.Int32)"> + <summary> + Returns a DelayedConstraint with the specified delay time. + </summary> + <param name="delayInMilliseconds">The delay in milliseconds.</param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.Constraint.After(System.Int32,System.Int32)"> + <summary> + Returns a DelayedConstraint with the specified delay time + and polling interval. + </summary> + <param name="delayInMilliseconds">The delay in milliseconds.</param> + <param name="pollingInterval">The interval at which to test the constraint.</param> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.Constraint.DisplayName"> + <summary> + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Constraint.And"> + <summary> + Returns a ConstraintExpression by appending And + to the current constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Constraint.With"> + <summary> + Returns a ConstraintExpression by appending And + to the current constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Constraint.Or"> + <summary> + Returns a ConstraintExpression by appending Or + to the current constraint. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.Constraint.UnsetObject"> + <summary> + Class used to detect any derived constraints + that fail to set the actual value in their + Matches override. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeExistsConstraint.#ctor(System.Type)"> + <summary> + Constructs an AttributeExistsConstraint for a specific attribute Type + </summary> + <param name="type"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeExistsConstraint.Matches(System.Object)"> + <summary> + Tests whether the object provides the expected attribute. + </summary> + <param name="actual">A Type, MethodInfo, or other ICustomAttributeProvider</param> + <returns>True if the expected attribute is present, otherwise false</returns> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeExistsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Writes the description of the constraint to the specified writer + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.AttributeConstraint"> + <summary> + AttributeConstraint tests that a specified attribute is present + on a Type or other provider and that the value of the attribute + satisfies some other constraint. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.PrefixConstraint"> + <summary> + Abstract base class used for prefixes + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.PrefixConstraint.baseConstraint"> + <summary> + The base constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PrefixConstraint.#ctor(NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Construct given a base constraint + </summary> + <param name="resolvable"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeConstraint.#ctor(System.Type,NUnit.Framework.Constraints.Constraint)"> + <summary> + Constructs an AttributeConstraint for a specified attriute + Type and base constraint. + </summary> + <param name="type"></param> + <param name="baseConstraint"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeConstraint.Matches(System.Object)"> + <summary> + Determines whether the Type or other provider has the + expected attribute and if its value matches the + additional constraint specified. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Writes a description of the attribute to the specified writer. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Writes the actual value supplied to the specified writer. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeConstraint.GetStringRepresentation"> + <summary> + Returns a string representation of the constraint. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.BasicConstraint"> + <summary> + BasicConstraint is the abstract base for constraints that + perform a simple comparison to a constant value. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.BasicConstraint.#ctor(System.Object,System.String)"> + <summary> + Initializes a new instance of the <see cref="T:BasicConstraint"/> class. + </summary> + <param name="expected">The expected.</param> + <param name="description">The description.</param> + </member> + <member name="M:NUnit.Framework.Constraints.BasicConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.BasicConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.NullConstraint"> + <summary> + NullConstraint tests that the actual value is null + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NullConstraint.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:NullConstraint"/> class. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.TrueConstraint"> + <summary> + TrueConstraint tests that the actual value is true + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.TrueConstraint.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:TrueConstraint"/> class. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.FalseConstraint"> + <summary> + FalseConstraint tests that the actual value is false + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.FalseConstraint.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:FalseConstraint"/> class. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NaNConstraint"> + <summary> + NaNConstraint tests that the actual value is a double or float NaN + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NaNConstraint.Matches(System.Object)"> + <summary> + Test that the actual value is an NaN + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.NaNConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a specified writer + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.BinaryConstraint"> + <summary> + BinaryConstraint is the abstract base of all constraints + that combine two other constraints in some fashion. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.BinaryConstraint.left"> + <summary> + The first constraint being combined + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.BinaryConstraint.right"> + <summary> + The second constraint being combined + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.BinaryConstraint.#ctor(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Construct a BinaryConstraint from two other constraints + </summary> + <param name="left">The first constraint</param> + <param name="right">The second constraint</param> + </member> + <member name="T:NUnit.Framework.Constraints.AndConstraint"> + <summary> + AndConstraint succeeds only if both members succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AndConstraint.#ctor(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Create an AndConstraint from two other constraints + </summary> + <param name="left">The first constraint</param> + <param name="right">The second constraint</param> + </member> + <member name="M:NUnit.Framework.Constraints.AndConstraint.Matches(System.Object)"> + <summary> + Apply both member constraints to an actual value, succeeding + succeeding only if both of them succeed. + </summary> + <param name="actual">The actual value</param> + <returns>True if the constraints both succeeded</returns> + </member> + <member name="M:NUnit.Framework.Constraints.AndConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description for this contraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to receive the description</param> + </member> + <member name="M:NUnit.Framework.Constraints.AndConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.OrConstraint"> + <summary> + OrConstraint succeeds if either member succeeds + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.OrConstraint.#ctor(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Create an OrConstraint from two other constraints + </summary> + <param name="left">The first constraint</param> + <param name="right">The second constraint</param> + </member> + <member name="M:NUnit.Framework.Constraints.OrConstraint.Matches(System.Object)"> + <summary> + Apply the member constraints to an actual value, succeeding + succeeding as soon as one of them succeeds. + </summary> + <param name="actual">The actual value</param> + <returns>True if either constraint succeeded</returns> + </member> + <member name="M:NUnit.Framework.Constraints.OrConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description for this contraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to receive the description</param> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionConstraint"> + <summary> + CollectionConstraint is the abstract base class for + constraints that operate on collections. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionConstraint.#ctor"> + <summary> + Construct an empty CollectionConstraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionConstraint.#ctor(System.Object)"> + <summary> + Construct a CollectionConstraint + </summary> + <param name="arg"></param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionConstraint.IsEmpty(System.Collections.IEnumerable)"> + <summary> + Determines whether the specified enumerable is empty. + </summary> + <param name="enumerable">The enumerable.</param> + <returns> + <c>true</c> if the specified enumerable is empty; otherwise, <c>false</c>. + </returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Protected method to be implemented by derived classes + </summary> + <param name="collection"></param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionItemsEqualConstraint"> + <summary> + CollectionItemsEqualConstraint is the abstract base class for all + collection constraints that apply some notion of item equality + as a part of their operation. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.#ctor"> + <summary> + Construct an empty CollectionConstraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.#ctor(System.Object)"> + <summary> + Construct a CollectionConstraint + </summary> + <param name="arg"></param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Using(System.Collections.IComparer)"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Using``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Using``1(System.Comparison{``0})"> + <summary> + Flag the constraint to use the supplied Comparison object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Using(System.Collections.IEqualityComparer)"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Using``1(System.Collections.Generic.IEqualityComparer{``0})"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.ItemsEqual(System.Object,System.Object)"> + <summary> + Compares two collection members for equality + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.Tally(System.Collections.IEnumerable)"> + <summary> + Return a new CollectionTally for use in making tests + </summary> + <param name="c">The collection to be included in the tally</param> + </member> + <member name="P:NUnit.Framework.Constraints.CollectionItemsEqualConstraint.IgnoreCase"> + <summary> + Flag the constraint to ignore case and return self. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.EmptyCollectionConstraint"> + <summary> + EmptyCollectionConstraint tests whether a collection is empty. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyCollectionConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Check that the collection is empty + </summary> + <param name="collection"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyCollectionConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.UniqueItemsConstraint"> + <summary> + UniqueItemsConstraint tests whether all the items in a + collection are unique. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.UniqueItemsConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Check that all items are unique. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.UniqueItemsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionContainsConstraint"> + <summary> + CollectionContainsConstraint is used to test whether a collection + contains an expected object as a member. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionContainsConstraint.#ctor(System.Object)"> + <summary> + Construct a CollectionContainsConstraint + </summary> + <param name="expected"></param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionContainsConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Test whether the expected item is contained in the collection + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionContainsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a descripton of the constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionEquivalentConstraint"> + <summary> + CollectionEquivalentCOnstraint is used to determine whether two + collections are equivalent. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionEquivalentConstraint.#ctor(System.Collections.IEnumerable)"> + <summary> + Construct a CollectionEquivalentConstraint + </summary> + <param name="expected"></param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionEquivalentConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Test whether two collections are equivalent + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionEquivalentConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionSubsetConstraint"> + <summary> + CollectionSubsetConstraint is used to determine whether + one collection is a subset of another + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionSubsetConstraint.#ctor(System.Collections.IEnumerable)"> + <summary> + Construct a CollectionSubsetConstraint + </summary> + <param name="expected">The collection that the actual value is expected to be a subset of</param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionSubsetConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Test whether the actual collection is a subset of + the expected collection provided. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionSubsetConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionOrderedConstraint"> + <summary> + CollectionOrderedConstraint is used to test whether a collection is ordered. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.#ctor"> + <summary> + Construct a CollectionOrderedConstraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.Using(System.Collections.IComparer)"> + <summary> + Modifies the constraint to use an IComparer and returns self. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.Using``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Modifies the constraint to use an IComparer<T> and returns self. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.Using``1(System.Comparison{``0})"> + <summary> + Modifies the constraint to use a Comparison<T> and returns self. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.By(System.String)"> + <summary> + Modifies the constraint to test ordering by the value of + a specified property and returns self. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.doMatch(System.Collections.IEnumerable)"> + <summary> + Test whether the collection is ordered + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of the constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOrderedConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of the constraint. + </summary> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.CollectionOrderedConstraint.Descending"> + <summary> + If used performs a reverse comparison + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionTally"> + <summary> + CollectionTally counts (tallies) the number of + occurences of each object in one or more enumerations. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionTally.#ctor(NUnit.Framework.Constraints.NUnitEqualityComparer,System.Collections.IEnumerable)"> + <summary> + Construct a CollectionTally object from a comparer and a collection + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionTally.TryRemove(System.Object)"> + <summary> + Try to remove an object from the tally + </summary> + <param name="o">The object to remove</param> + <returns>True if successful, false if the object was not found</returns> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionTally.TryRemove(System.Collections.IEnumerable)"> + <summary> + Try to remove a set of objects from the tally + </summary> + <param name="c">The objects to remove</param> + <returns>True if successful, false if any object was not found</returns> + </member> + <member name="P:NUnit.Framework.Constraints.CollectionTally.Count"> + <summary> + The number of objects remaining in the tally + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ComparisonAdapter"> + <summary> + ComparisonAdapter class centralizes all comparisons of + values in NUnit, adapting to the use of any provided + IComparer, IComparer<T> or Comparison<T> + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.For(System.Collections.IComparer)"> + <summary> + Returns a ComparisonAdapter that wraps an IComparer + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.For``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Returns a ComparisonAdapter that wraps an IComparer<T> + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.For``1(System.Comparison{``0})"> + <summary> + Returns a ComparisonAdapter that wraps a Comparison<T> + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.Compare(System.Object,System.Object)"> + <summary> + Compares two objects + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ComparisonAdapter.Default"> + <summary> + Gets the default ComparisonAdapter, which wraps an + NUnitComparer object. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparerAdapter.#ctor(System.Collections.IComparer)"> + <summary> + Construct a ComparisonAdapter for an IComparer + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparerAdapter.Compare(System.Object,System.Object)"> + <summary> + Compares two objects + </summary> + <param name="expected"></param> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.DefaultComparisonAdapter.#ctor"> + <summary> + Construct a default ComparisonAdapter + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ComparisonAdapter.ComparerAdapter`1"> + <summary> + ComparisonAdapter<T> extends ComparisonAdapter and + allows use of an IComparer<T> or Comparison<T> + to actually perform the comparison. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparerAdapter`1.#ctor(System.Collections.Generic.IComparer{`0})"> + <summary> + Construct a ComparisonAdapter for an IComparer<T> + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparerAdapter`1.Compare(System.Object,System.Object)"> + <summary> + Compare a Type T to an object + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparisonAdapterForComparison`1.#ctor(System.Comparison{`0})"> + <summary> + Construct a ComparisonAdapter for a Comparison<T> + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonAdapter.ComparisonAdapterForComparison`1.Compare(System.Object,System.Object)"> + <summary> + Compare a Type T to an object + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ComparisonConstraint"> + <summary> + Abstract base class for constraints that compare values to + determine if one is greater than, equal to or less than + the other. This class supplies the Using modifiers. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ComparisonConstraint.comparer"> + <summary> + ComparisonAdapter to be used in making the comparison + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:ComparisonConstraint"/> class. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonConstraint.#ctor(System.Object,System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:ComparisonConstraint"/> class. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonConstraint.Using(System.Collections.IComparer)"> + <summary> + Modifies the constraint to use an IComparer and returns self + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonConstraint.Using``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Modifies the constraint to use an IComparer<T> and returns self + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ComparisonConstraint.Using``1(System.Comparison{``0})"> + <summary> + Modifies the constraint to use a Comparison<T> and returns self + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ActualValueDelegate"> + <summary> + Delegate used to delay evaluation of the actual value + to be used in evaluating a constraint + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintBuilder"> + <summary> + ConstraintBuilder maintains the stacks that are used in + processing a ConstraintExpression. An OperatorStack + is used to hold operators that are waiting for their + operands to be reognized. a ConstraintStack holds + input constraints as well as the results of each + operator applied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintBuilder"/> class. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.Append(NUnit.Framework.Constraints.ConstraintOperator)"> + <summary> + Appends the specified operator to the expression by first + reducing the operator stack and then pushing the new + operator on the stack. + </summary> + <param name="op">The operator to push.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.Append(NUnit.Framework.Constraints.Constraint)"> + <summary> + Appends the specified constraint to the expresson by pushing + it on the constraint stack. + </summary> + <param name="constraint">The constraint to push.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.SetTopOperatorRightContext(System.Object)"> + <summary> + Sets the top operator right context. + </summary> + <param name="rightContext">The right context.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.ReduceOperatorStack(System.Int32)"> + <summary> + Reduces the operator stack until the topmost item + precedence is greater than or equal to the target precedence. + </summary> + <param name="targetPrecedence">The target precedence.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.Resolve"> + <summary> + Resolves this instance, returning a Constraint. If the builder + is not currently in a resolvable state, an exception is thrown. + </summary> + <returns>The resolved constraint</returns> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintBuilder.IsResolvable"> + <summary> + Gets a value indicating whether this instance is resolvable. + </summary> + <value> + <c>true</c> if this instance is resolvable; otherwise, <c>false</c>. + </value> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack"> + <summary> + OperatorStack is a type-safe stack for holding ConstraintOperators + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack.#ctor(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Initializes a new instance of the <see cref="T:OperatorStack"/> class. + </summary> + <param name="builder">The builder.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack.Push(NUnit.Framework.Constraints.ConstraintOperator)"> + <summary> + Pushes the specified operator onto the stack. + </summary> + <param name="op">The op.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack.Pop"> + <summary> + Pops the topmost operator from the stack. + </summary> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack.Empty"> + <summary> + Gets a value indicating whether this <see cref="T:OpStack"/> is empty. + </summary> + <value><c>true</c> if empty; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintBuilder.OperatorStack.Top"> + <summary> + Gets the topmost operator without modifying the stack. + </summary> + <value>The top.</value> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack"> + <summary> + ConstraintStack is a type-safe stack for holding Constraints + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.#ctor(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintStack"/> class. + </summary> + <param name="builder">The builder.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.Push(NUnit.Framework.Constraints.Constraint)"> + <summary> + Pushes the specified constraint. As a side effect, + the constraint's builder field is set to the + ConstraintBuilder owning this stack. + </summary> + <param name="constraint">The constraint.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.Pop"> + <summary> + Pops this topmost constrait from the stack. + As a side effect, the constraint's builder + field is set to null. + </summary> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.Empty"> + <summary> + Gets a value indicating whether this <see cref="T:ConstraintStack"/> is empty. + </summary> + <value><c>true</c> if empty; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack.Top"> + <summary> + Gets the topmost constraint without modifying the stack. + </summary> + <value>The topmost constraint</value> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintExpression"> + <summary> + ConstraintExpression represents a compound constraint in the + process of being constructed from a series of syntactic elements. + + Individual elements are appended to the expression as they are + reognized. Once an actual Constraint is appended, the expression + returns a resolvable Constraint. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintExpressionBase"> + <summary> + ConstraintExpressionBase is the abstract base class for the + ConstraintExpression class, which represents a + compound constraint in the process of being constructed + from a series of syntactic elements. + + NOTE: ConstraintExpressionBase is separate because the + ConstraintExpression class was generated in earlier + versions of NUnit. The two classes may be combined + in a future version. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ConstraintExpressionBase.builder"> + <summary> + The ConstraintBuilder holding the elements recognized so far + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintExpressionBase"/> class. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.#ctor(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintExpressionBase"/> + class passing in a ConstraintBuilder, which may be pre-populated. + </summary> + <param name="builder">The builder.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.ToString"> + <summary> + Returns a string representation of the expression as it + currently stands. This should only be used for testing, + since it has the side-effect of resolving the expression. + </summary> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.Append(NUnit.Framework.Constraints.ConstraintOperator)"> + <summary> + Appends an operator to the expression and returns the + resulting expression itself. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.Append(NUnit.Framework.Constraints.SelfResolvingOperator)"> + <summary> + Appends a self-resolving operator to the expression and + returns a new ResolvableConstraintExpression. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpressionBase.Append(NUnit.Framework.Constraints.Constraint)"> + <summary> + Appends a constraint to the expression and returns that + constraint, which is associated with the current state + of the expression being built. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.#ctor"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintExpression"/> class. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.#ctor(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Initializes a new instance of the <see cref="T:ConstraintExpression"/> + class passing in a ConstraintBuilder, which may be pre-populated. + </summary> + <param name="builder">The builder.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Exactly(System.Int32)"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Property(System.String)"> + <summary> + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Attribute(System.Type)"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Attribute``1"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Matches(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Matches``1(System.Predicate{``0})"> + <summary> + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.EqualTo(System.Object)"> + <summary> + Returns a constraint that tests two items for equality + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.SameAs(System.Object)"> + <summary> + Returns a constraint that tests that two references are the same object + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.GreaterThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.GreaterThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AtLeast(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.LessThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.LessThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AtMost(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.TypeOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.TypeOf``1"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.InstanceOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.InstanceOf``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.InstanceOfType(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.InstanceOfType``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AssignableFrom(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AssignableFrom``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AssignableTo(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.AssignableTo``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.EquivalentTo(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.SubsetOf(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Member(System.Object)"> + <summary> + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Contains(System.Object)"> + <summary> + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Contains(System.String)"> + <summary> + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.StringContaining(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.ContainsSubstring(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.StartsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.StringStarting(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.EndsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.StringEnding(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.Matches(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.StringMatching(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.SamePath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.SubPath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.SamePathOrUnder(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintExpression.InRange``1(``0,``0)"> + <summary> + Returns a constraint that tests whether the actual value falls + within a specified range. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Not"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.No"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.All"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Some"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.None"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Length"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Count"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Message"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.InnerException"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.With"> + <summary> + With is currently a NOP - reserved for future use. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Null"> + <summary> + Returns a constraint that tests for null + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.True"> + <summary> + Returns a constraint that tests for True + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.False"> + <summary> + Returns a constraint that tests for False + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Positive"> + <summary> + Returns a constraint that tests for a positive value + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Negative"> + <summary> + Returns a constraint that tests for a negative value + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.NaN"> + <summary> + Returns a constraint that tests for NaN + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Empty"> + <summary> + Returns a constraint that tests for empty + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Unique"> + <summary> + Returns a constraint that tests whether a collection + contains all unique items. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.BinarySerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in binary format. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.XmlSerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in xml format. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintExpression.Ordered"> + <summary> + Returns a constraint that tests whether a collection is ordered + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintFactory"> + <summary> + Helper class with properties and methods that supply + a number of constraints used in Asserts. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Exactly(System.Int32)"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Property(System.String)"> + <summary> + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Attribute(System.Type)"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Attribute``1"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.EqualTo(System.Object)"> + <summary> + Returns a constraint that tests two items for equality + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.SameAs(System.Object)"> + <summary> + Returns a constraint that tests that two references are the same object + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.GreaterThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.GreaterThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AtLeast(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.LessThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.LessThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AtMost(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.TypeOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.TypeOf``1"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.InstanceOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.InstanceOf``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.InstanceOfType(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.InstanceOfType``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AssignableFrom(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AssignableFrom``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AssignableTo(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.AssignableTo``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.EquivalentTo(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.SubsetOf(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Member(System.Object)"> + <summary> + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Contains(System.Object)"> + <summary> + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Contains(System.String)"> + <summary> + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.StringContaining(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.ContainsSubstring(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.DoesNotContain(System.String)"> + <summary> + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.StartsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.StringStarting(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.DoesNotStartWith(System.String)"> + <summary> + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.EndsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.StringEnding(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.DoesNotEndWith(System.String)"> + <summary> + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.Matches(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.StringMatching(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.DoesNotMatch(System.String)"> + <summary> + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.SamePath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.SubPath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.SamePathOrUnder(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintFactory.InRange``1(``0,``0)"> + <summary> + Returns a constraint that tests whether the actual value falls + within a specified range. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Not"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.No"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.All"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Some"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.None"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Length"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Count"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Message"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.InnerException"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Null"> + <summary> + Returns a constraint that tests for null + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.True"> + <summary> + Returns a constraint that tests for True + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.False"> + <summary> + Returns a constraint that tests for False + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Positive"> + <summary> + Returns a constraint that tests for a positive value + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Negative"> + <summary> + Returns a constraint that tests for a negative value + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.NaN"> + <summary> + Returns a constraint that tests for NaN + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Empty"> + <summary> + Returns a constraint that tests for empty + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Unique"> + <summary> + Returns a constraint that tests whether a collection + contains all unique items. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.BinarySerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in binary format. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.XmlSerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in xml format. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintFactory.Ordered"> + <summary> + Returns a constraint that tests whether a collection is ordered + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ConstraintOperator"> + <summary> + The ConstraintOperator class is used internally by a + ConstraintBuilder to represent an operator that + modifies or combines constraints. + + Constraint operators use left and right precedence + values to determine whether the top operator on the + stack should be reduced before pushing a new operator. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ConstraintOperator.left_precedence"> + <summary> + The precedence value used when the operator + is about to be pushed to the stack. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ConstraintOperator.right_precedence"> + <summary> + The precedence value used when the operator + is on the top of the stack. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ConstraintOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + <param name="stack"></param> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintOperator.LeftContext"> + <summary> + The syntax element preceding this operator + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintOperator.RightContext"> + <summary> + The syntax element folowing this operator + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintOperator.LeftPrecedence"> + <summary> + The precedence value used when the operator + is about to be pushed to the stack. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ConstraintOperator.RightPrecedence"> + <summary> + The precedence value used when the operator + is on the top of the stack. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.PrefixOperator"> + <summary> + PrefixOperator takes a single constraint and modifies + it's action in some way. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PrefixOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + <param name="stack"></param> + </member> + <member name="M:NUnit.Framework.Constraints.PrefixOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns the constraint created by applying this + prefix to another constraint. + </summary> + <param name="constraint"></param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Constraints.NotOperator"> + <summary> + Negates the test of the constraint it wraps. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NotOperator.#ctor"> + <summary> + Constructs a new NotOperator + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NotOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a NotConstraint applied to its argument. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.CollectionOperator"> + <summary> + Abstract base for operators that indicate how to + apply a constraint to items in a collection. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.CollectionOperator.#ctor"> + <summary> + Constructs a CollectionOperator + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.AllOperator"> + <summary> + Represents a constraint that succeeds if all the + members of a collection match a base constraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AllOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + they all succeed. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.SomeOperator"> + <summary> + Represents a constraint that succeeds if any of the + members of a collection match a base constraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SomeOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + any of them succeed. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NoneOperator"> + <summary> + Represents a constraint that succeeds if none of the + members of a collection match a base constraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NoneOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + none of them succeed. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ExactCountOperator"> + <summary> + Represents a constraint that succeeds if the specified + count of members of a collection match a base constraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ExactCountOperator.#ctor(System.Int32)"> + <summary> + Construct an ExactCountOperator for a specified count + </summary> + <param name="expectedCount">The expected count</param> + </member> + <member name="M:NUnit.Framework.Constraints.ExactCountOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a constraint that will apply the argument + to the members of a collection, succeeding if + none of them succeed. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.WithOperator"> + <summary> + Represents a constraint that simply wraps the + constraint provided as an argument, without any + further functionality, but which modifes the + order of evaluation because of its precedence. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.WithOperator.#ctor"> + <summary> + Constructor for the WithOperator + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.WithOperator.ApplyPrefix(NUnit.Framework.Constraints.Constraint)"> + <summary> + Returns a constraint that wraps its argument + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.SelfResolvingOperator"> + <summary> + Abstract base class for operators that are able to reduce to a + constraint whether or not another syntactic element follows. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.PropOperator"> + <summary> + Operator used to test for the presence of a named Property + on an object and optionally apply further tests to the + value of that property. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PropOperator.#ctor(System.String)"> + <summary> + Constructs a PropOperator for a particular named property + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PropOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + <param name="stack"></param> + </member> + <member name="P:NUnit.Framework.Constraints.PropOperator.Name"> + <summary> + Gets the name of the property to which the operator applies + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.AttributeOperator"> + <summary> + Operator that tests for the presence of a particular attribute + on a type and optionally applies further tests to the attribute. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeOperator.#ctor(System.Type)"> + <summary> + Construct an AttributeOperator for a particular Type + </summary> + <param name="type">The Type of attribute tested</param> + </member> + <member name="M:NUnit.Framework.Constraints.AttributeOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ThrowsOperator"> + <summary> + Operator that tests that an exception is thrown and + optionally applies further tests to the exception. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsOperator.#ctor"> + <summary> + Construct a ThrowsOperator + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.BinaryOperator"> + <summary> + Abstract base class for all binary operators + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.BinaryOperator.Reduce(NUnit.Framework.Constraints.ConstraintBuilder.ConstraintStack)"> + <summary> + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + </summary> + <param name="stack"></param> + </member> + <member name="M:NUnit.Framework.Constraints.BinaryOperator.ApplyOperator(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Abstract method that produces a constraint by applying + the operator to its left and right constraint arguments. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.BinaryOperator.LeftPrecedence"> + <summary> + Gets the left precedence of the operator + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.BinaryOperator.RightPrecedence"> + <summary> + Gets the right precedence of the operator + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.AndOperator"> + <summary> + Operator that requires both it's arguments to succeed + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AndOperator.#ctor"> + <summary> + Construct an AndOperator + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AndOperator.ApplyOperator(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Apply the operator to produce an AndConstraint + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.OrOperator"> + <summary> + Operator that requires at least one of it's arguments to succeed + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.OrOperator.#ctor"> + <summary> + Construct an OrOperator + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.OrOperator.ApplyOperator(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.Constraint)"> + <summary> + Apply the operator to produce an OrConstraint + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ContainsConstraint"> + <summary> + ContainsConstraint tests a whether a string contains a substring + or a collection contains an object. It postpones the decision of + which test to use until the type of the actual argument is known. + This allows testing whether a string is contained in a collection + or as a substring of another string using the same syntax. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:ContainsConstraint"/> class. + </summary> + <param name="expected">The expected.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Using(System.Collections.IComparer)"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Using``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Using``1(System.Comparison{``0})"> + <summary> + Flag the constraint to use the supplied Comparison object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Using(System.Collections.IEqualityComparer)"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ContainsConstraint.Using``1(System.Collections.Generic.IEqualityComparer{``0})"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="P:NUnit.Framework.Constraints.ContainsConstraint.IgnoreCase"> + <summary> + Flag the constraint to ignore case and return self. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.DelayedConstraint"> + <summary> + Applies a delay to the match so that a match can be evaluated in the future. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.#ctor(NUnit.Framework.Constraints.Constraint,System.Int32)"> + <summary> + Creates a new DelayedConstraint + </summary> + <param name="baseConstraint">The inner constraint two decorate</param> + <param name="delayInMilliseconds">The time interval after which the match is performed</param> + <exception cref="T:System.InvalidOperationException">If the value of <paramref name="delayInMilliseconds"/> is less than 0</exception> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.#ctor(NUnit.Framework.Constraints.Constraint,System.Int32,System.Int32)"> + <summary> + Creates a new DelayedConstraint + </summary> + <param name="baseConstraint">The inner constraint two decorate</param> + <param name="delayInMilliseconds">The time interval after which the match is performed</param> + <param name="pollingInterval">The time interval used for polling</param> + <exception cref="T:System.InvalidOperationException">If the value of <paramref name="delayInMilliseconds"/> is less than 0</exception> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for if the base constraint fails, false if it succeeds</returns> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.Matches(NUnit.Framework.Constraints.ActualValueDelegate)"> + <summary> + Test whether the constraint is satisfied by a delegate + </summary> + <param name="del">The delegate whose value is to be tested</param> + <returns>True for if the base constraint fails, false if it succeeds</returns> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.Matches``1(``0@)"> + <summary> + Test whether the constraint is satisfied by a given reference. + Overridden to wait for the specified delay period before + calling the base constraint with the dereferenced value. + </summary> + <param name="actual">A reference to the value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a MessageWriter. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.DelayedConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of the constraint. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.EmptyDirectoryContraint"> + <summary> + EmptyDirectoryConstraint is used to test that a directory is empty + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyDirectoryContraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyDirectoryContraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyDirectoryContraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.EmptyConstraint"> + <summary> + EmptyConstraint tests a whether a string or collection is empty, + postponing the decision about which test is applied until the + type of the actual argument is known. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.EqualConstraint"> + <summary> + EqualConstraint is able to compare an actual value with the + expected value provided in its constructor. Two objects are + considered equal if both are null, or if both have the same + value. NUnit has special semantics for some object types. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.EqualConstraint.clipStrings"> + <summary> + If true, strings in error messages will be clipped + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.EqualConstraint.comparer"> + <summary> + NUnitEqualityComparer used to test equality. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:NUnit.Framework.Constraints.EqualConstraint"/> class. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Within(System.Object)"> + <summary> + Flag the constraint to use a tolerance when determining equality. + </summary> + <param name="amount">Tolerance value to be used</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Comparer(System.Collections.IComparer)"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Using(System.Collections.IComparer)"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Using``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Flag the constraint to use the supplied IComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Using``1(System.Comparison{``0})"> + <summary> + Flag the constraint to use the supplied Comparison object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Using(System.Collections.IEqualityComparer)"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Using``1(System.Collections.Generic.IEqualityComparer{``0})"> + <summary> + Flag the constraint to use the supplied IEqualityComparer object. + </summary> + <param name="comparer">The IComparer object to use.</param> + <returns>Self.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.WriteMessageTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a failure message. Overridden to provide custom + failure messages for EqualConstraint. + </summary> + <param name="writer">The MessageWriter to write to</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write description of this constraint + </summary> + <param name="writer">The MessageWriter to write to</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.DisplayCollectionDifferences(NUnit.Framework.Constraints.MessageWriter,System.Collections.ICollection,System.Collections.ICollection,System.Int32)"> + <summary> + Display the failure information for two collections that did not match. + </summary> + <param name="writer">The MessageWriter on which to display</param> + <param name="expected">The expected collection.</param> + <param name="actual">The actual collection</param> + <param name="depth">The depth of this failure in a set of nested collections</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.DisplayTypesAndSizes(NUnit.Framework.Constraints.MessageWriter,System.Collections.IEnumerable,System.Collections.IEnumerable,System.Int32)"> + <summary> + Displays a single line showing the types and sizes of the expected + and actual enumerations, collections or arrays. If both are identical, + the value is only shown once. + </summary> + <param name="writer">The MessageWriter on which to display</param> + <param name="expected">The expected collection or array</param> + <param name="actual">The actual collection or array</param> + <param name="indent">The indentation level for the message line</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.DisplayFailurePoint(NUnit.Framework.Constraints.MessageWriter,System.Collections.IEnumerable,System.Collections.IEnumerable,NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint,System.Int32)"> + <summary> + Displays a single line showing the point in the expected and actual + arrays at which the comparison failed. If the arrays have different + structures or dimensions, both values are shown. + </summary> + <param name="writer">The MessageWriter on which to display</param> + <param name="expected">The expected array</param> + <param name="actual">The actual array</param> + <param name="failurePoint">Index of the failure point in the underlying collections</param> + <param name="indent">The indentation level for the message line</param> + </member> + <member name="M:NUnit.Framework.Constraints.EqualConstraint.DisplayEnumerableDifferences(NUnit.Framework.Constraints.MessageWriter,System.Collections.IEnumerable,System.Collections.IEnumerable,System.Int32)"> + <summary> + Display the failure information for two IEnumerables that did not match. + </summary> + <param name="writer">The MessageWriter on which to display</param> + <param name="expected">The expected enumeration.</param> + <param name="actual">The actual enumeration</param> + <param name="depth">The depth of this failure in a set of nested collections</param> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.IgnoreCase"> + <summary> + Flag the constraint to ignore case and return self. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.NoClip"> + <summary> + Flag the constraint to suppress string clipping + and return self. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.AsCollection"> + <summary> + Flag the constraint to compare arrays as collections + and return self. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Ulps"> + <summary> + Switches the .Within() modifier to interpret its tolerance as + a distance in representable values (see remarks). + </summary> + <returns>Self.</returns> + <remarks> + Ulp stands for "unit in the last place" and describes the minimum + amount a given value can change. For any integers, an ulp is 1 whole + digit. For floating point values, the accuracy of which is better + for smaller numbers and worse for larger numbers, an ulp depends + on the size of the number. Using ulps for comparison of floating + point results instead of fixed tolerances is safer because it will + automatically compensate for the added inaccuracy of larger numbers. + </remarks> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Percent"> + <summary> + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Days"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in days. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Hours"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in hours. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Minutes"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in minutes. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Seconds"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in seconds. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Milliseconds"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in milliseconds. + </summary> + <returns>Self</returns> + </member> + <member name="P:NUnit.Framework.Constraints.EqualConstraint.Ticks"> + <summary> + Causes the tolerance to be interpreted as a TimeSpan in clock ticks. + </summary> + <returns>Self</returns> + </member> + <member name="T:NUnit.Framework.Constraints.EqualityAdapter"> + <summary> + EqualityAdapter class handles all equality comparisons + that use an IEqualityComparer, IEqualityComparer<T> + or a ComparisonAdapter. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.AreEqual(System.Object,System.Object)"> + <summary> + Compares two objects, returning true if they are equal + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.CanCompare(System.Object,System.Object)"> + <summary> + Returns true if the two objects can be compared by this adapter. + The base adapter cannot handle IEnumerables except for strings. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.For(System.Collections.IComparer)"> + <summary> + Returns an EqualityAdapter that wraps an IComparer. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.For(System.Collections.IEqualityComparer)"> + <summary> + Returns an EqualityAdapter that wraps an IEqualityComparer. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.For``1(System.Collections.Generic.IEqualityComparer{``0})"> + <summary> + Returns an EqualityAdapter that wraps an IEqualityComparer<T>. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.For``1(System.Collections.Generic.IComparer{``0})"> + <summary> + Returns an EqualityAdapter that wraps an IComparer<T>. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.For``1(System.Comparison{``0})"> + <summary> + Returns an EqualityAdapter that wraps a Comparison<T>. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.EqualityAdapter.ComparerAdapter"> + <summary> + EqualityAdapter that wraps an IComparer. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EqualityAdapter.GenericEqualityAdapter`1.CanCompare(System.Object,System.Object)"> + <summary> + Returns true if the two objects can be compared by this adapter. + Generic adapter requires objects of the specified type. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.EqualityAdapter.ComparerAdapter`1"> + <summary> + EqualityAdapter that wraps an IComparer. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.FloatingPointNumerics"> + <summary>Helper routines for working with floating point numbers</summary> + <remarks> + <para> + The floating point comparison code is based on this excellent article: + http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm + </para> + <para> + "ULP" means Unit in the Last Place and in the context of this library refers to + the distance between two adjacent floating point numbers. IEEE floating point + numbers can only represent a finite subset of natural numbers, with greater + accuracy for smaller numbers and lower accuracy for very large numbers. + </para> + <para> + If a comparison is allowed "2 ulps" of deviation, that means the values are + allowed to deviate by up to 2 adjacent floating point values, which might be + as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. + </para> + </remarks> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.AreAlmostEqualUlps(System.Single,System.Single,System.Int32)"> + <summary>Compares two floating point values for equality</summary> + <param name="left">First floating point value to be compared</param> + <param name="right">Second floating point value t be compared</param> + <param name="maxUlps"> + Maximum number of representable floating point values that are allowed to + be between the left and the right floating point values + </param> + <returns>True if both numbers are equal or close to being equal</returns> + <remarks> + <para> + Floating point values can only represent a finite subset of natural numbers. + For example, the values 2.00000000 and 2.00000024 can be stored in a float, + but nothing inbetween them. + </para> + <para> + This comparison will count how many possible floating point values are between + the left and the right number. If the number of possible values between both + numbers is less than or equal to maxUlps, then the numbers are considered as + being equal. + </para> + <para> + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + </para> + </remarks> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.AreAlmostEqualUlps(System.Double,System.Double,System.Int64)"> + <summary>Compares two double precision floating point values for equality</summary> + <param name="left">First double precision floating point value to be compared</param> + <param name="right">Second double precision floating point value t be compared</param> + <param name="maxUlps"> + Maximum number of representable double precision floating point values that are + allowed to be between the left and the right double precision floating point values + </param> + <returns>True if both numbers are equal or close to being equal</returns> + <remarks> + <para> + Double precision floating point values can only represent a limited series of + natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 + can be stored in a double, but nothing inbetween them. + </para> + <para> + This comparison will count how many possible double precision floating point + values are between the left and the right number. If the number of possible + values between both numbers is less than or equal to maxUlps, then the numbers + are considered as being equal. + </para> + <para> + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + </para> + </remarks> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.ReinterpretAsInt(System.Single)"> + <summary> + Reinterprets the memory contents of a floating point value as an integer value + </summary> + <param name="value"> + Floating point value whose memory contents to reinterpret + </param> + <returns> + The memory contents of the floating point value interpreted as an integer + </returns> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.ReinterpretAsLong(System.Double)"> + <summary> + Reinterprets the memory contents of a double precision floating point + value as an integer value + </summary> + <param name="value"> + Double precision floating point value whose memory contents to reinterpret + </param> + <returns> + The memory contents of the double precision floating point value + interpreted as an integer + </returns> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.ReinterpretAsFloat(System.Int32)"> + <summary> + Reinterprets the memory contents of an integer as a floating point value + </summary> + <param name="value">Integer value whose memory contents to reinterpret</param> + <returns> + The memory contents of the integer value interpreted as a floating point value + </returns> + </member> + <member name="M:NUnit.Framework.Constraints.FloatingPointNumerics.ReinterpretAsDouble(System.Int64)"> + <summary> + Reinterprets the memory contents of an integer value as a double precision + floating point value + </summary> + <param name="value">Integer whose memory contents to reinterpret</param> + <returns> + The memory contents of the integer interpreted as a double precision + floating point value + </returns> + </member> + <member name="T:NUnit.Framework.Constraints.FloatingPointNumerics.FloatIntUnion"> + <summary>Union of a floating point variable and an integer</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.FloatIntUnion.Float"> + <summary>The union's value as a floating point variable</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.FloatIntUnion.Int"> + <summary>The union's value as an integer</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.FloatIntUnion.UInt"> + <summary>The union's value as an unsigned integer</summary> + </member> + <member name="T:NUnit.Framework.Constraints.FloatingPointNumerics.DoubleLongUnion"> + <summary>Union of a double precision floating point variable and a long</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.DoubleLongUnion.Double"> + <summary>The union's value as a double precision floating point variable</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.DoubleLongUnion.Long"> + <summary>The union's value as a long</summary> + </member> + <member name="F:NUnit.Framework.Constraints.FloatingPointNumerics.DoubleLongUnion.ULong"> + <summary>The union's value as an unsigned long</summary> + </member> + <member name="T:NUnit.Framework.Constraints.GreaterThanConstraint"> + <summary> + Tests whether a value is greater than the value supplied to its constructor + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.GreaterThanConstraint.expected"> + <summary> + The value against which a comparison is to be made + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:GreaterThanConstraint"/> class. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="T:NUnit.Framework.Constraints.GreaterThanOrEqualConstraint"> + <summary> + Tests whether a value is greater than or equal to the value supplied to its constructor + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.GreaterThanOrEqualConstraint.expected"> + <summary> + The value against which a comparison is to be made + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanOrEqualConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:GreaterThanOrEqualConstraint"/> class. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanOrEqualConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.GreaterThanOrEqualConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="T:NUnit.Framework.Constraints.LessThanConstraint"> + <summary> + Tests whether a value is less than the value supplied to its constructor + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.LessThanConstraint.expected"> + <summary> + The value against which a comparison is to be made + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:LessThanConstraint"/> class. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="T:NUnit.Framework.Constraints.LessThanOrEqualConstraint"> + <summary> + Tests whether a value is less than or equal to the value supplied to its constructor + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.LessThanOrEqualConstraint.expected"> + <summary> + The value against which a comparison is to be made + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanOrEqualConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:LessThanOrEqualConstraint"/> class. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanOrEqualConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.LessThanOrEqualConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="T:NUnit.Framework.Constraints.MessageWriter"> + <summary> + MessageWriter is the abstract base for classes that write + constraint descriptions and messages in some form. The + class has separate methods for writing various components + of a message, allowing implementations to tailor the + presentation as needed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.#ctor"> + <summary> + Construct a MessageWriter given a culture + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteMessageLine(System.String,System.Object[])"> + <summary> + Method to write single line message with optional args, usually + written to precede the general failure message. + </summary> + <param name="message">The message to be written</param> + <param name="args">Any arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteMessageLine(System.Int32,System.String,System.Object[])"> + <summary> + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + </summary> + <param name="level">The indentation level of the message</param> + <param name="message">The message to be written</param> + <param name="args">Any arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.DisplayDifferences(NUnit.Framework.Constraints.Constraint)"> + <summary> + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + </summary> + <param name="constraint">The constraint that failed</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.DisplayDifferences(System.Object,System.Object)"> + <summary> + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value causing the failure</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.DisplayDifferences(System.Object,System.Object,NUnit.Framework.Constraints.Tolerance)"> + <summary> + Display Expected and Actual lines for given values, including + a tolerance value on the Expected line. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value causing the failure</param> + <param name="tolerance">The tolerance within which the test was made</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.DisplayStringDifferences(System.String,System.String,System.Int32,System.Boolean,System.Boolean)"> + <summary> + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + </summary> + <param name="expected">The expected string value</param> + <param name="actual">The actual string value</param> + <param name="mismatch">The point at which the strings don't match or -1</param> + <param name="ignoreCase">If true, case is ignored in locating the point where the strings differ</param> + <param name="clipping">If true, the strings should be clipped to fit the line</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteConnector(System.String)"> + <summary> + Writes the text for a connector. + </summary> + <param name="connector">The connector.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WritePredicate(System.String)"> + <summary> + Writes the text for a predicate. + </summary> + <param name="predicate">The predicate.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteExpectedValue(System.Object)"> + <summary> + Writes the text for an expected value. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteModifier(System.String)"> + <summary> + Writes the text for a modifier + </summary> + <param name="modifier">The modifier.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteActualValue(System.Object)"> + <summary> + Writes the text for an actual value. + </summary> + <param name="actual">The actual value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteValue(System.Object)"> + <summary> + Writes the text for a generalized value. + </summary> + <param name="val">The value.</param> + </member> + <member name="M:NUnit.Framework.Constraints.MessageWriter.WriteCollectionElements(System.Collections.IEnumerable,System.Int32,System.Int32)"> + <summary> + Writes the text for a collection value, + starting at a particular point, to a max length + </summary> + <param name="collection">The collection containing elements to write.</param> + <param name="start">The starting point of the elements to write</param> + <param name="max">The maximum number of elements to write</param> + </member> + <member name="P:NUnit.Framework.Constraints.MessageWriter.MaxLineLength"> + <summary> + Abstract method to get the max line length + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.MsgUtils"> + <summary> + Static methods used in creating messages + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.MsgUtils.ELLIPSIS"> + <summary> + Static string used when strings are clipped + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.GetTypeRepresentation(System.Object)"> + <summary> + Returns the representation of a type as used in NUnitLite. + This is the same as Type.ToString() except for arrays, + which are displayed with their declared sizes. + </summary> + <param name="obj"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.EscapeControlChars(System.String)"> + <summary> + Converts any control characters in a string + to their escaped representation. + </summary> + <param name="s">The string to be converted</param> + <returns>The converted string</returns> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.GetArrayIndicesAsString(System.Int32[])"> + <summary> + Return the a string representation for a set of indices into an array + </summary> + <param name="indices">Array of indices for which a string is needed</param> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.GetArrayIndicesFromCollectionIndex(System.Collections.IEnumerable,System.Int32)"> + <summary> + Get an array of indices representing the point in a enumerable, + collection or array corresponding to a single int index into the + collection. + </summary> + <param name="collection">The collection to which the indices apply</param> + <param name="index">Index in the collection</param> + <returns>Array of indices</returns> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.ClipString(System.String,System.Int32,System.Int32)"> + <summary> + Clip a string to a given length, starting at a particular offset, returning the clipped + string with ellipses representing the removed parts + </summary> + <param name="s">The string to be clipped</param> + <param name="maxStringLength">The maximum permitted length of the result string</param> + <param name="clipStart">The point at which to start clipping</param> + <returns>The clipped string</returns> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.ClipExpectedAndActual(System.String@,System.String@,System.Int32,System.Int32)"> + <summary> + Clip the expected and actual strings in a coordinated fashion, + so that they may be displayed together. + </summary> + <param name="expected"></param> + <param name="actual"></param> + <param name="maxDisplayLength"></param> + <param name="mismatch"></param> + </member> + <member name="M:NUnit.Framework.Constraints.MsgUtils.FindMismatchPosition(System.String,System.String,System.Int32,System.Boolean)"> + <summary> + Shows the position two strings start to differ. Comparison + starts at the start index. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + <param name="istart">The index in the strings at which comparison should start</param> + <param name="ignoreCase">Boolean indicating whether case should be ignored</param> + <returns>-1 if no mismatch found, or the index where mismatch found</returns> + </member> + <member name="T:NUnit.Framework.Constraints.Numerics"> + <summary> + The Numerics class contains common operations on numeric values. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Numerics.IsNumericType(System.Object)"> + <summary> + Checks the type of the object, returning true if + the object is a numeric type. + </summary> + <param name="obj">The object to check</param> + <returns>true if the object is a numeric type</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Numerics.IsFloatingPointNumeric(System.Object)"> + <summary> + Checks the type of the object, returning true if + the object is a floating point numeric type. + </summary> + <param name="obj">The object to check</param> + <returns>true if the object is a floating point numeric type</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Numerics.IsFixedPointNumeric(System.Object)"> + <summary> + Checks the type of the object, returning true if + the object is a fixed point numeric type. + </summary> + <param name="obj">The object to check</param> + <returns>true if the object is a fixed point numeric type</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Numerics.AreEqual(System.Object,System.Object,NUnit.Framework.Constraints.Tolerance@)"> + <summary> + Test two numeric values for equality, performing the usual numeric + conversions and using a provided or default tolerance. If the tolerance + provided is Empty, this method may set it to a default tolerance. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="tolerance">A reference to the tolerance in effect</param> + <returns>True if the values are equal</returns> + </member> + <member name="M:NUnit.Framework.Constraints.Numerics.Compare(System.Object,System.Object)"> + <summary> + Compare two numeric values, performing the usual numeric conversions. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <returns>The relationship of the values to each other</returns> + </member> + <member name="T:NUnit.Framework.Constraints.NUnitComparer"> + <summary> + NUnitComparer encapsulates NUnit's default behavior + in comparing two objects. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NUnitComparer.Compare(System.Object,System.Object)"> + <summary> + Compares two objects + </summary> + <param name="x"></param> + <param name="y"></param> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitComparer.Default"> + <summary> + Returns the default NUnitComparer. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NUnitComparer`1"> + <summary> + Generic version of NUnitComparer + </summary> + <typeparam name="T"></typeparam> + </member> + <member name="M:NUnit.Framework.Constraints.NUnitComparer`1.Compare(`0,`0)"> + <summary> + Compare two objects of the same type + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NUnitEqualityComparer"> + <summary> + NUnitEqualityComparer encapsulates NUnit's handling of + equality tests between objects. + </summary> + </member> + <member name="T:NUnit.Framework.INUnitEqualityComparer"> + <summary> + + </summary> + </member> + <member name="M:NUnit.Framework.INUnitEqualityComparer.AreEqual(System.Object,System.Object,NUnit.Framework.Constraints.Tolerance@)"> + <summary> + Compares two objects for equality within a tolerance + </summary> + <param name="x">The first object to compare</param> + <param name="y">The second object to compare</param> + <param name="tolerance">The tolerance to use in the comparison</param> + <returns></returns> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.caseInsensitive"> + <summary> + If true, all string comparisons will ignore case + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.compareAsCollection"> + <summary> + If true, arrays will be treated as collections, allowing + those of different dimensions to be compared + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.externalComparers"> + <summary> + Comparison objects used in comparisons for some constraints. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NUnitEqualityComparer.AreEqual(System.Object,System.Object,NUnit.Framework.Constraints.Tolerance@)"> + <summary> + Compares two objects for equality within a tolerance. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NUnitEqualityComparer.ArraysEqual(System.Array,System.Array,NUnit.Framework.Constraints.NUnitEqualityComparer.EnumerableRecursionHelper,NUnit.Framework.Constraints.Tolerance@)"> + <summary> + Helper method to compare two arrays + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NUnitEqualityComparer.DirectoriesEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo)"> + <summary> + Method to compare two DirectoryInfo objects + </summary> + <param name="x">first directory to compare</param> + <param name="y">second directory to compare</param> + <returns>true if equivalent, false if not</returns> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitEqualityComparer.Default"> + <summary> + Returns the default NUnitEqualityComparer + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitEqualityComparer.IgnoreCase"> + <summary> + Gets and sets a flag indicating whether case should + be ignored in determining equality. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitEqualityComparer.CompareAsCollection"> + <summary> + Gets and sets a flag indicating that arrays should be + compared as collections, without regard to their shape. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitEqualityComparer.ExternalComparers"> + <summary> + Gets and sets an external comparer to be used to + test for equality. It is applied to members of + collections, in place of NUnit's own logic. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoints"> + <summary> + Gets the list of failure points for the last Match performed. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint"> + <summary> + FailurePoint class represents one point of failure + in an equality test. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.Position"> + <summary> + The location of the failure + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.ExpectedValue"> + <summary> + The expected value + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.ActualValue"> + <summary> + The actual value + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.ExpectedHasData"> + <summary> + Indicates whether the expected value is valid + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.NUnitEqualityComparer.FailurePoint.ActualHasData"> + <summary> + Indicates whether the actual value is valid + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.PathConstraint"> + <summary> + PathConstraint serves as the abstract base of constraints + that operate on paths and provides several helper methods. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.PathConstraint.expectedPath"> + <summary> + The expected path used in the constraint + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.PathConstraint.actualPath"> + <summary> + The actual path being tested + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.PathConstraint.caseInsensitive"> + <summary> + Flag indicating whether a caseInsensitive comparison should be made + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.#ctor(System.String)"> + <summary> + Construct a PathConstraint for a give expected path + </summary> + <param name="expected">The expected path</param> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.IsMatch(System.String,System.String)"> + <summary> + Returns true if the expected path and actual path match + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of this constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.Canonicalize(System.String)"> + <summary> + Canonicalize the provided path + </summary> + <param name="path"></param> + <returns>The path in standardized form</returns> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.IsSamePath(System.String,System.String,System.Boolean)"> + <summary> + Test whether two paths are the same + </summary> + <param name="path1">The first path</param> + <param name="path2">The second path</param> + <param name="ignoreCase">Indicates whether case should be ignored</param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.IsSubPath(System.String,System.String,System.Boolean)"> + <summary> + Test whether one path is under another path + </summary> + <param name="path1">The first path - supposed to be the parent path</param> + <param name="path2">The second path - supposed to be the child path</param> + <param name="ignoreCase">Indicates whether case should be ignored</param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.PathConstraint.IsSamePathOrUnder(System.String,System.String)"> + <summary> + Test whether one path is the same as or under another path + </summary> + <param name="path1">The first path - supposed to be the parent path</param> + <param name="path2">The second path - supposed to be the child path</param> + <returns></returns> + </member> + <member name="P:NUnit.Framework.Constraints.PathConstraint.IgnoreCase"> + <summary> + Modifies the current instance to be case-insensitve + and returns it. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.PathConstraint.RespectCase"> + <summary> + Modifies the current instance to be case-sensitve + and returns it. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.SamePathConstraint"> + <summary> + Summary description for SamePathConstraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:SamePathConstraint"/> class. + </summary> + <param name="expected">The expected path</param> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathConstraint.IsMatch(System.String,System.String)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="expectedPath">The expected path</param> + <param name="actualPath">The actual path</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.SubPathConstraint"> + <summary> + SubPathConstraint tests that the actual path is under the expected path + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SubPathConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:SubPathConstraint"/> class. + </summary> + <param name="expected">The expected path</param> + </member> + <member name="M:NUnit.Framework.Constraints.SubPathConstraint.IsMatch(System.String,System.String)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="expectedPath">The expected path</param> + <param name="actualPath">The actual path</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.SubPathConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.SamePathOrUnderConstraint"> + <summary> + SamePathOrUnderConstraint tests that one path is under another + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathOrUnderConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:SamePathOrUnderConstraint"/> class. + </summary> + <param name="expected">The expected path</param> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathOrUnderConstraint.IsMatch(System.String,System.String)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="expectedPath">The expected path</param> + <param name="actualPath">The actual path</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.SamePathOrUnderConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.PredicateConstraint`1"> + <summary> + Predicate constraint wraps a Predicate in a constraint, + returning success if the predicate is true. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PredicateConstraint`1.#ctor(System.Predicate{`0})"> + <summary> + Construct a PredicateConstraint from a predicate + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PredicateConstraint`1.Matches(System.Object)"> + <summary> + Determines whether the predicate succeeds when applied + to the actual value. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PredicateConstraint`1.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Writes the description to a MessageWriter + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.NotConstraint"> + <summary> + NotConstraint negates the effect of some other constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NotConstraint.#ctor(NUnit.Framework.Constraints.Constraint)"> + <summary> + Initializes a new instance of the <see cref="T:NotConstraint"/> class. + </summary> + <param name="baseConstraint">The base constraint to be negated.</param> + </member> + <member name="M:NUnit.Framework.Constraints.NotConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for if the base constraint fails, false if it succeeds</returns> + </member> + <member name="M:NUnit.Framework.Constraints.NotConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.NotConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a MessageWriter. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.AllItemsConstraint"> + <summary> + AllItemsConstraint applies another constraint to each + item in a collection, succeeding if they all succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AllItemsConstraint.#ctor(NUnit.Framework.Constraints.Constraint)"> + <summary> + Construct an AllItemsConstraint on top of an existing constraint + </summary> + <param name="itemConstraint"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AllItemsConstraint.Matches(System.Object)"> + <summary> + Apply the item constraint to each item in the collection, + failing if any item fails. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.AllItemsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.SomeItemsConstraint"> + <summary> + SomeItemsConstraint applies another constraint to each + item in a collection, succeeding if any of them succeeds. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SomeItemsConstraint.#ctor(NUnit.Framework.Constraints.Constraint)"> + <summary> + Construct a SomeItemsConstraint on top of an existing constraint + </summary> + <param name="itemConstraint"></param> + </member> + <member name="M:NUnit.Framework.Constraints.SomeItemsConstraint.Matches(System.Object)"> + <summary> + Apply the item constraint to each item in the collection, + succeeding if any item succeeds. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.SomeItemsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.NoItemConstraint"> + <summary> + NoItemConstraint applies another constraint to each + item in a collection, failing if any of them succeeds. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NoItemConstraint.#ctor(NUnit.Framework.Constraints.Constraint)"> + <summary> + Construct a NoItemConstraint on top of an existing constraint + </summary> + <param name="itemConstraint"></param> + </member> + <member name="M:NUnit.Framework.Constraints.NoItemConstraint.Matches(System.Object)"> + <summary> + Apply the item constraint to each item in the collection, + failing if any item fails. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.NoItemConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.ExactCountConstraint"> + <summary> + ExactCoutConstraint applies another constraint to each + item in a collection, succeeding only if a specified + number of items succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ExactCountConstraint.#ctor(System.Int32,NUnit.Framework.Constraints.Constraint)"> + <summary> + Construct an ExactCountConstraint on top of an existing constraint + </summary> + <param name="expectedCount"></param> + <param name="itemConstraint"></param> + </member> + <member name="M:NUnit.Framework.Constraints.ExactCountConstraint.Matches(System.Object)"> + <summary> + Apply the item constraint to each item in the collection, + succeeding only if the expected number of items pass. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ExactCountConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer"></param> + </member> + <member name="T:NUnit.Framework.Constraints.PropertyExistsConstraint"> + <summary> + PropertyExistsConstraint tests that a named property + exists on the object provided through Match. + + Originally, PropertyConstraint provided this feature + in addition to making optional tests on the vaue + of the property. The two constraints are now separate. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyExistsConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:PropertyExistConstraint"/> class. + </summary> + <param name="name">The name of the property.</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyExistsConstraint.Matches(System.Object)"> + <summary> + Test whether the property exists for a given object + </summary> + <param name="actual">The object to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyExistsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyExistsConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyExistsConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of the constraint. + </summary> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Constraints.PropertyConstraint"> + <summary> + PropertyConstraint extracts a named property and uses + its value as the actual value for a chained constraint. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyConstraint.#ctor(System.String,NUnit.Framework.Constraints.Constraint)"> + <summary> + Initializes a new instance of the <see cref="T:PropertyConstraint"/> class. + </summary> + <param name="name">The name.</param> + <param name="baseConstraint">The constraint to apply to the property.</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.PropertyConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of the constraint. + </summary> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Constraints.RangeConstraint`1"> + <summary> + RangeConstraint tests whethe two values are within a + specified range. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.RangeConstraint`1.#ctor(`0,`0)"> + <summary> + Initializes a new instance of the <see cref="T:RangeConstraint"/> class. + </summary> + <param name="from">From.</param> + <param name="to">To.</param> + </member> + <member name="M:NUnit.Framework.Constraints.RangeConstraint`1.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.RangeConstraint`1.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.ResolvableConstraintExpression"> + <summary> + ResolvableConstraintExpression is used to represent a compound + constraint being constructed at a point where the last operator + may either terminate the expression or may have additional + qualifying constraints added to it. + + It is used, for example, for a Property element or for + an Exception element, either of which may be optionally + followed by constraints that apply to the property or + exception. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.#ctor"> + <summary> + Create a new instance of ResolvableConstraintExpression + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.#ctor(NUnit.Framework.Constraints.ConstraintBuilder)"> + <summary> + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.NUnit#Framework#Constraints#IResolveConstraint#Resolve"> + <summary> + Resolve the current expression to a Constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseAnd(NUnit.Framework.Constraints.ResolvableConstraintExpression,NUnit.Framework.Constraints.ResolvableConstraintExpression)"> + <summary> + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseAnd(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.ResolvableConstraintExpression)"> + <summary> + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseAnd(NUnit.Framework.Constraints.ResolvableConstraintExpression,NUnit.Framework.Constraints.Constraint)"> + <summary> + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseOr(NUnit.Framework.Constraints.ResolvableConstraintExpression,NUnit.Framework.Constraints.ResolvableConstraintExpression)"> + <summary> + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseOr(NUnit.Framework.Constraints.ResolvableConstraintExpression,NUnit.Framework.Constraints.Constraint)"> + <summary> + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_BitwiseOr(NUnit.Framework.Constraints.Constraint,NUnit.Framework.Constraints.ResolvableConstraintExpression)"> + <summary> + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ResolvableConstraintExpression.op_LogicalNot(NUnit.Framework.Constraints.ResolvableConstraintExpression)"> + <summary> + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ResolvableConstraintExpression.And"> + <summary> + Appends an And Operator to the expression + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ResolvableConstraintExpression.Or"> + <summary> + Appends an Or operator to the expression. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ReusableConstraint"> + <summary> + ReusableConstraint wraps a resolved constraint so that it + may be saved and reused as needed. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ReusableConstraint.#ctor(NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Construct a ReusableConstraint + </summary> + <param name="c">The constraint or expression to be reused</param> + </member> + <member name="M:NUnit.Framework.Constraints.ReusableConstraint.op_Implicit(NUnit.Framework.Constraints.Constraint)~NUnit.Framework.Constraints.ReusableConstraint"> + <summary> + Conversion operator from a normal constraint to a ReusableConstraint. + </summary> + <param name="c">The original constraint to be wrapped as a ReusableConstraint</param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ReusableConstraint.ToString"> + <summary> + Returns the string representation of the constraint. + </summary> + <returns>A string representing the constraint</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ReusableConstraint.Resolve"> + <summary> + Resolves the ReusableConstraint by returning the constraint + that it originally wrapped. + </summary> + <returns>A resolved constraint</returns> + </member> + <member name="T:NUnit.Framework.Constraints.SameAsConstraint"> + <summary> + SameAsConstraint tests whether an object is identical to + the object passed to its constructor + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SameAsConstraint.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:SameAsConstraint"/> class. + </summary> + <param name="expected">The expected object.</param> + </member> + <member name="M:NUnit.Framework.Constraints.SameAsConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.SameAsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.BinarySerializableConstraint"> + <summary> + BinarySerializableConstraint tests whether + an object is serializable in binary format. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.BinarySerializableConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.BinarySerializableConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.BinarySerializableConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.BinarySerializableConstraint.GetStringRepresentation"> + <summary> + Returns the string representation + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.XmlSerializableConstraint"> + <summary> + BinarySerializableConstraint tests whether + an object is serializable in binary format. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.XmlSerializableConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.XmlSerializableConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.XmlSerializableConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.XmlSerializableConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of this constraint + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.StringConstraint"> + <summary> + StringConstraint is the abstract base for constraints + that operate on strings. It supports the IgnoreCase + modifier for string operations. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.StringConstraint.expected"> + <summary> + The expected value + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.StringConstraint.caseInsensitive"> + <summary> + Indicates whether tests should be case-insensitive + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.StringConstraint.#ctor(System.String)"> + <summary> + Constructs a StringConstraint given an expected value + </summary> + <param name="expected">The expected value</param> + </member> + <member name="P:NUnit.Framework.Constraints.StringConstraint.IgnoreCase"> + <summary> + Modify the constraint to ignore case in matching. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.EmptyStringConstraint"> + <summary> + EmptyStringConstraint tests whether a string is empty. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyStringConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.EmptyStringConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.NullOrEmptyStringConstraint"> + <summary> + NullEmptyStringConstraint tests whether a string is either null or empty. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NullOrEmptyStringConstraint.#ctor"> + <summary> + Constructs a new NullOrEmptyStringConstraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.NullOrEmptyStringConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.NullOrEmptyStringConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.SubstringConstraint"> + <summary> + SubstringConstraint can test whether a string contains + the expected substring. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.SubstringConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:SubstringConstraint"/> class. + </summary> + <param name="expected">The expected.</param> + </member> + <member name="M:NUnit.Framework.Constraints.SubstringConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.SubstringConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.StartsWithConstraint"> + <summary> + StartsWithConstraint can test whether a string starts + with an expected substring. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.StartsWithConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:StartsWithConstraint"/> class. + </summary> + <param name="expected">The expected string</param> + </member> + <member name="M:NUnit.Framework.Constraints.StartsWithConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.StartsWithConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.EndsWithConstraint"> + <summary> + EndsWithConstraint can test whether a string ends + with an expected substring. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.EndsWithConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:EndsWithConstraint"/> class. + </summary> + <param name="expected">The expected string</param> + </member> + <member name="M:NUnit.Framework.Constraints.EndsWithConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.EndsWithConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.RegexConstraint"> + <summary> + RegexConstraint can test whether a string matches + the pattern provided. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.RegexConstraint.#ctor(System.String)"> + <summary> + Initializes a new instance of the <see cref="T:RegexConstraint"/> class. + </summary> + <param name="pattern">The pattern.</param> + </member> + <member name="M:NUnit.Framework.Constraints.RegexConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True for success, false for failure</returns> + </member> + <member name="M:NUnit.Framework.Constraints.RegexConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.ThrowsConstraint"> + <summary> + ThrowsConstraint is used to test the exception thrown by + a delegate by applying a constraint to it. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.#ctor(NUnit.Framework.Constraints.Constraint)"> + <summary> + Initializes a new instance of the <see cref="T:ThrowsConstraint"/> class, + using a constraint to be applied to the exception. + </summary> + <param name="baseConstraint">A constraint to apply to the caught exception.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.Matches(System.Object)"> + <summary> + Executes the code of the delegate and captures any exception. + If a non-null base constraint was provided, it applies that + constraint to the exception. + </summary> + <param name="actual">A delegate representing the code to be tested</param> + <returns>True if an exception is thrown and the constraint succeeds, otherwise false</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.Matches(NUnit.Framework.Constraints.ActualValueDelegate)"> + <summary> + Converts an ActualValueDelegate to a TestDelegate + before calling the primary overload. + </summary> + <param name="del"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsConstraint.GetStringRepresentation"> + <summary> + Returns the string representation of this constraint + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.ThrowsConstraint.ActualException"> + <summary> + Get the actual exception thrown - used by Assert.Throws. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.ThrowsNothingConstraint"> + <summary> + ThrowsNothingConstraint tests that a delegate does not + throw an exception. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsNothingConstraint.Matches(System.Object)"> + <summary> + Test whether the constraint is satisfied by a given value + </summary> + <param name="actual">The value to be tested</param> + <returns>True if no exception is thrown, otherwise false</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsNothingConstraint.Matches(NUnit.Framework.Constraints.ActualValueDelegate)"> + <summary> + Converts an ActualValueDelegate to a TestDelegate + before calling the primary overload. + </summary> + <param name="del"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsNothingConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the constraint description to a MessageWriter + </summary> + <param name="writer">The writer on which the description is displayed</param> + </member> + <member name="M:NUnit.Framework.Constraints.ThrowsNothingConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.ToleranceMode"> + <summary> + Modes in which the tolerance value for a comparison can + be interpreted. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ToleranceMode.None"> + <summary> + The tolerance was created with a value, without specifying + how the value would be used. This is used to prevent setting + the mode more than once and is generally changed to Linear + upon execution of the test. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ToleranceMode.Linear"> + <summary> + The tolerance is used as a numeric range within which + two compared values are considered to be equal. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ToleranceMode.Percent"> + <summary> + Interprets the tolerance as the percentage by which + the two compared values my deviate from each other. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.ToleranceMode.Ulps"> + <summary> + Compares two values based in their distance in + representable numbers. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.Tolerance"> + <summary> + The Tolerance class generalizes the notion of a tolerance + within which an equality test succeeds. Normally, it is + used with numeric types, but it can be used with any + type that supports taking a difference between two + objects and comparing that difference to a value. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Tolerance.#ctor(System.Object)"> + <summary> + Constructs a linear tolerance of a specdified amount + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Tolerance.#ctor(System.Object,NUnit.Framework.Constraints.ToleranceMode)"> + <summary> + Constructs a tolerance given an amount and ToleranceMode + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.Tolerance.CheckLinearAndNumeric"> + <summary> + Tests that the current Tolerance is linear with a + numeric value, throwing an exception if it is not. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Empty"> + <summary> + Returns an empty Tolerance object, equivalent to + specifying no tolerance. In most cases, it results + in an exact match but for floats and doubles a + default tolerance may be used. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Zero"> + <summary> + Returns a zero Tolerance object, equivalent to + specifying an exact match. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Mode"> + <summary> + Gets the ToleranceMode for the current Tolerance + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Value"> + <summary> + Gets the value of the current Tolerance instance. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Percent"> + <summary> + Returns a new tolerance, using the current amount as a percentage. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Ulps"> + <summary> + Returns a new tolerance, using the current amount in Ulps. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Days"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of days. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Hours"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of hours. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Minutes"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of minutes. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Seconds"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of seconds. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Milliseconds"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of milliseconds. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.Ticks"> + <summary> + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of clock ticks. + </summary> + </member> + <member name="P:NUnit.Framework.Constraints.Tolerance.IsEmpty"> + <summary> + Returns true if the current tolerance is empty. + </summary> + </member> + <member name="T:NUnit.Framework.Constraints.TypeConstraint"> + <summary> + TypeConstraint is the abstract base for constraints + that take a Type as their expected value. + </summary> + </member> + <member name="F:NUnit.Framework.Constraints.TypeConstraint.expectedType"> + <summary> + The expected Type used by the constraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.TypeConstraint.#ctor(System.Type)"> + <summary> + Construct a TypeConstraint for a given Type + </summary> + <param name="type"></param> + </member> + <member name="M:NUnit.Framework.Constraints.TypeConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. TypeConstraints override this method to write + the name of the type. + </summary> + <param name="writer">The writer on which the actual value is displayed</param> + </member> + <member name="T:NUnit.Framework.Constraints.ExactTypeConstraint"> + <summary> + ExactTypeConstraint is used to test that an object + is of the exact type provided in the constructor + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ExactTypeConstraint.#ctor(System.Type)"> + <summary> + Construct an ExactTypeConstraint for a given Type + </summary> + <param name="type">The expected Type.</param> + </member> + <member name="M:NUnit.Framework.Constraints.ExactTypeConstraint.Matches(System.Object)"> + <summary> + Test that an object is of the exact type specified + </summary> + <param name="actual">The actual value.</param> + <returns>True if the tested object is of the exact type provided, otherwise false.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.ExactTypeConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the description of this constraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to use</param> + </member> + <member name="T:NUnit.Framework.Constraints.ExceptionTypeConstraint"> + <summary> + ExceptionTypeConstraint is a special version of ExactTypeConstraint + used to provided detailed info about the exception thrown in + an error message. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ExceptionTypeConstraint.#ctor(System.Type)"> + <summary> + Constructs an ExceptionTypeConstraint + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.ExceptionTypeConstraint.WriteActualValueTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write the actual value for a failing constraint test to a + MessageWriter. Overriden to write additional information + in the case of an Exception. + </summary> + <param name="writer">The MessageWriter to use</param> + </member> + <member name="T:NUnit.Framework.Constraints.InstanceOfTypeConstraint"> + <summary> + InstanceOfTypeConstraint is used to test that an object + is of the same type provided or derived from it. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.InstanceOfTypeConstraint.#ctor(System.Type)"> + <summary> + Construct an InstanceOfTypeConstraint for the type provided + </summary> + <param name="type">The expected Type</param> + </member> + <member name="M:NUnit.Framework.Constraints.InstanceOfTypeConstraint.Matches(System.Object)"> + <summary> + Test whether an object is of the specified type or a derived type + </summary> + <param name="actual">The object to be tested</param> + <returns>True if the object is of the provided type or derives from it, otherwise false.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.InstanceOfTypeConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to use</param> + </member> + <member name="T:NUnit.Framework.Constraints.AssignableFromConstraint"> + <summary> + AssignableFromConstraint is used to test that an object + can be assigned from a given Type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableFromConstraint.#ctor(System.Type)"> + <summary> + Construct an AssignableFromConstraint for the type provided + </summary> + <param name="type"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableFromConstraint.Matches(System.Object)"> + <summary> + Test whether an object can be assigned from the specified type + </summary> + <param name="actual">The object to be tested</param> + <returns>True if the object can be assigned a value of the expected Type, otherwise false.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableFromConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to use</param> + </member> + <member name="T:NUnit.Framework.Constraints.AssignableToConstraint"> + <summary> + AssignableToConstraint is used to test that an object + can be assigned to a given Type. + </summary> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableToConstraint.#ctor(System.Type)"> + <summary> + Construct an AssignableToConstraint for the type provided + </summary> + <param name="type"></param> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableToConstraint.Matches(System.Object)"> + <summary> + Test whether an object can be assigned to the specified type + </summary> + <param name="actual">The object to be tested</param> + <returns>True if the object can be assigned a value of the expected Type, otherwise false.</returns> + </member> + <member name="M:NUnit.Framework.Constraints.AssignableToConstraint.WriteDescriptionTo(NUnit.Framework.Constraints.MessageWriter)"> + <summary> + Write a description of this constraint to a MessageWriter + </summary> + <param name="writer">The MessageWriter to use</param> + </member> + <member name="T:NUnit.Framework.AssertionException"> + <summary> + Thrown when an assertion failed. + </summary> + + </member> + <member name="M:NUnit.Framework.AssertionException.#ctor(System.String)"> + <param name="message">The error message that explains + the reason for the exception</param> + </member> + <member name="M:NUnit.Framework.AssertionException.#ctor(System.String,System.Exception)"> + <param name="message">The error message that explains + the reason for the exception</param> + <param name="inner">The exception that caused the + current exception</param> + </member> + <member name="M:NUnit.Framework.AssertionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> + <summary> + Serialization Constructor + </summary> + </member> + <member name="T:NUnit.Framework.IgnoreException"> + <summary> + Thrown when an assertion failed. + </summary> + </member> + <member name="M:NUnit.Framework.IgnoreException.#ctor(System.String)"> + <param name="message"></param> + </member> + <member name="M:NUnit.Framework.IgnoreException.#ctor(System.String,System.Exception)"> + <param name="message">The error message that explains + the reason for the exception</param> + <param name="inner">The exception that caused the + current exception</param> + </member> + <member name="M:NUnit.Framework.IgnoreException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> + <summary> + Serialization Constructor + </summary> + </member> + <member name="T:NUnit.Framework.InconclusiveException"> + <summary> + Thrown when a test executes inconclusively. + </summary> + + </member> + <member name="M:NUnit.Framework.InconclusiveException.#ctor(System.String)"> + <param name="message">The error message that explains + the reason for the exception</param> + </member> + <member name="M:NUnit.Framework.InconclusiveException.#ctor(System.String,System.Exception)"> + <param name="message">The error message that explains + the reason for the exception</param> + <param name="inner">The exception that caused the + current exception</param> + </member> + <member name="M:NUnit.Framework.InconclusiveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> + <summary> + Serialization Constructor + </summary> + </member> + <member name="T:NUnit.Framework.SuccessException"> + <summary> + Thrown when an assertion failed. + </summary> + </member> + <member name="M:NUnit.Framework.SuccessException.#ctor(System.String)"> + <param name="message"></param> + </member> + <member name="M:NUnit.Framework.SuccessException.#ctor(System.String,System.Exception)"> + <param name="message">The error message that explains + the reason for the exception</param> + <param name="inner">The exception that caused the + current exception</param> + </member> + <member name="M:NUnit.Framework.SuccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)"> + <summary> + Serialization Constructor + </summary> + </member> + <member name="T:NUnit.Framework.INUnitEqualityComparer`1"> + <summary> + + </summary> + <typeparam name="T"></typeparam> + </member> + <member name="M:NUnit.Framework.INUnitEqualityComparer`1.AreEqual(`0,`0,NUnit.Framework.Constraints.Tolerance@)"> + <summary> + Compares two objects of a given Type for equality within a tolerance + </summary> + <param name="x">The first object to compare</param> + <param name="y">The second object to compare</param> + <param name="tolerance">The tolerance to use in the comparison</param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.ActionTargets"> + <summary> + The different targets a test action attribute can be applied to + </summary> + </member> + <member name="F:NUnit.Framework.ActionTargets.Default"> + <summary> + Default target, which is determined by where the action attribute is attached + </summary> + </member> + <member name="F:NUnit.Framework.ActionTargets.Test"> + <summary> + Target a individual test case + </summary> + </member> + <member name="F:NUnit.Framework.ActionTargets.Suite"> + <summary> + Target a suite of test cases + </summary> + </member> + <member name="T:NUnit.Framework.TestDelegate"> + <summary> + Delegate used by tests that execute code and + capture any thrown exception. + </summary> + </member> + <member name="T:NUnit.Framework.Assert"> + <summary> + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.#ctor"> + <summary> + We don't actually want any instances of this object, but some people + like to inherit from it to add other static methods. Hence, the + protected constructor disallows any instances of this object. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.Assert.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.Assert.AssertDoublesAreEqual(System.Double,System.Double,System.Double,System.String,System.Object[])"> + <summary> + Helper for Assert.AreEqual(double expected, double actual, ...) + allowing code generation to work consistently. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Pass(System.String,System.Object[])"> + <summary> + Throws a <see cref="T:NUnit.Framework.SuccessException"/> with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Pass(System.String)"> + <summary> + Throws a <see cref="T:NUnit.Framework.SuccessException"/> with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + </member> + <member name="M:NUnit.Framework.Assert.Pass"> + <summary> + Throws a <see cref="T:NUnit.Framework.SuccessException"/> with the message and arguments + that are passed in. This allows a test to be cut short, with a result + of success returned to NUnit. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.Fail(System.String,System.Object[])"> + <summary> + Throws an <see cref="T:NUnit.Framework.AssertionException"/> with the message and arguments + that are passed in. This is used by the other Assert functions. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Fail(System.String)"> + <summary> + Throws an <see cref="T:NUnit.Framework.AssertionException"/> with the message that is + passed in. This is used by the other Assert functions. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + </member> + <member name="M:NUnit.Framework.Assert.Fail"> + <summary> + Throws an <see cref="T:NUnit.Framework.AssertionException"/>. + This is used by the other Assert functions. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.Ignore(System.String,System.Object[])"> + <summary> + Throws an <see cref="T:NUnit.Framework.IgnoreException"/> with the message and arguments + that are passed in. This causes the test to be reported as ignored. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Ignore(System.String)"> + <summary> + Throws an <see cref="T:NUnit.Framework.IgnoreException"/> with the message that is + passed in. This causes the test to be reported as ignored. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.AssertionException"/> with.</param> + </member> + <member name="M:NUnit.Framework.Assert.Ignore"> + <summary> + Throws an <see cref="T:NUnit.Framework.IgnoreException"/>. + This causes the test to be reported as ignored. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.Inconclusive(System.String,System.Object[])"> + <summary> + Throws an <see cref="T:NUnit.Framework.InconclusiveException"/> with the message and arguments + that are passed in. This causes the test to be reported as inconclusive. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.InconclusiveException"/> with.</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Inconclusive(System.String)"> + <summary> + Throws an <see cref="T:NUnit.Framework.InconclusiveException"/> with the message that is + passed in. This causes the test to be reported as inconclusive. + </summary> + <param name="message">The message to initialize the <see cref="T:NUnit.Framework.InconclusiveException"/> with.</param> + </member> + <member name="M:NUnit.Framework.Assert.Inconclusive"> + <summary> + Throws an <see cref="T:NUnit.Framework.InconclusiveException"/>. + This causes the test to be reported as Inconclusive. + </summary> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="expr">A Constraint expression to be applied</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.Assert.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Boolean,System.String)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + </member> + <member name="M:NUnit.Framework.Assert.That(System.Boolean)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assert.That(NUnit.Framework.TestDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + </summary> + <param name="code">A TestDelegate to be executed</param> + <param name="constraint">A ThrowsConstraint used in the test</param> + </member> + <member name="M:NUnit.Framework.Assert.ByVal(System.Object,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.Assert.ByVal(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.ByVal(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + Used as a synonym for That in rare cases where a private setter + causes a Visual Basic compilation error. + </summary> + <remarks> + This method is provided for use by VB developers needing to test + the value of properties with private setters. + </remarks> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(NUnit.Framework.Constraints.IResolveConstraint,NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expression">A constraint to be satisfied by the exception</param> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(NUnit.Framework.Constraints.IResolveConstraint,NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expression">A constraint to be satisfied by the exception</param> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(NUnit.Framework.Constraints.IResolveConstraint,NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expression">A constraint to be satisfied by the exception</param> + <param name="code">A TestSnippet delegate</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(System.Type,NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expectedExceptionType">The exception Type expected</param> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(System.Type,NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expectedExceptionType">The exception Type expected</param> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws(System.Type,NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <param name="expectedExceptionType">The exception Type expected</param> + <param name="code">A TestSnippet delegate</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws``1(NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <typeparam name="T">Type of the expected exception</typeparam> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws``1(NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <typeparam name="T">Type of the expected exception</typeparam> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Throws``1(NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws a particular exception when called. + </summary> + <typeparam name="T">Type of the expected exception</typeparam> + <param name="code">A TestSnippet delegate</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws an exception when called + and returns it. + </summary> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws an exception when called + and returns it. + </summary> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws an exception when called + and returns it. + </summary> + <param name="code">A TestDelegate</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(System.Type,NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <param name="expectedExceptionType">The expected Exception Type</param> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(System.Type,NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <param name="expectedExceptionType">The expected Exception Type</param> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch(System.Type,NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <param name="expectedExceptionType">The expected Exception Type</param> + <param name="code">A TestDelegate</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch``1(NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <typeparam name="T">The expected Exception Type</typeparam> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch``1(NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <typeparam name="T">The expected Exception Type</typeparam> + <param name="code">A TestDelegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Catch``1(NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate throws an exception of a certain Type + or one derived from it when called and returns it. + </summary> + <typeparam name="T">The expected Exception Type</typeparam> + <param name="code">A TestDelegate</param> + </member> + <member name="M:NUnit.Framework.Assert.DoesNotThrow(NUnit.Framework.TestDelegate,System.String,System.Object[])"> + <summary> + Verifies that a delegate does not throw an exception + </summary> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.DoesNotThrow(NUnit.Framework.TestDelegate,System.String)"> + <summary> + Verifies that a delegate does not throw an exception. + </summary> + <param name="code">A TestSnippet delegate</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assert.DoesNotThrow(NUnit.Framework.TestDelegate)"> + <summary> + Verifies that a delegate does not throw an exception. + </summary> + <param name="code">A TestSnippet delegate</param> + </member> + <member name="M:NUnit.Framework.Assert.True(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.True(System.Boolean,System.String)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.True(System.Boolean)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assert.IsTrue(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsTrue(System.Boolean,System.String)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsTrue(System.Boolean)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assert.False(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.False(System.Boolean,System.String)"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.False(System.Boolean)"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assert.IsFalse(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsFalse(System.Boolean,System.String)"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsFalse(System.Boolean)"> + <summary> + Asserts that a condition is false. If the condition is true the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assert.NotNull(System.Object,System.String,System.Object[])"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.NotNull(System.Object,System.String)"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.NotNull(System.Object)"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNull(System.Object,System.String,System.Object[])"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNull(System.Object,System.String)"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNull(System.Object)"> + <summary> + Verifies that the object that is passed in is not equal to <code>null</code> + If the object is <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.Null(System.Object,System.String,System.Object[])"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Null(System.Object,System.String)"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Null(System.Object)"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNull(System.Object,System.String,System.Object[])"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNull(System.Object,System.String)"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNull(System.Object)"> + <summary> + Verifies that the object that is passed in is equal to <code>null</code> + If the object is not <code>null</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="anObject">The object that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Double,System.String,System.Object[])"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Double,System.String)"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Double)"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Nullable{System.Double},System.String,System.Object[])"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Nullable{System.Double},System.String)"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNaN(System.Nullable{System.Double})"> + <summary> + Verifies that the double that is passed in is an <code>NaN</code> value. + If the object is not <code>NaN</code> then an <see cref="T:NUnit.Framework.AssertionException"/> + is thrown. + </summary> + <param name="aDouble">The value that is to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.String,System.String,System.Object[])"> + <summary> + Assert that a string is empty - that is equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.String,System.String)"> + <summary> + Assert that a string is empty - that is equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.String)"> + <summary> + Assert that a string is empty - that is equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.Collections.IEnumerable,System.String)"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsEmpty(System.Collections.IEnumerable)"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.String,System.String,System.Object[])"> + <summary> + Assert that a string is not empty - that is not equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.String,System.String)"> + <summary> + Assert that a string is not empty - that is not equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.String)"> + <summary> + Assert that a string is not empty - that is not equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is not empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.Collections.IEnumerable,System.String)"> + <summary> + Assert that an array, list or other collection is not empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotEmpty(System.Collections.IEnumerable)"> + <summary> + Assert that an array, list or other collection is not empty + </summary> + <param name="collection">An array, list or other collection implementing ICollection</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNullOrEmpty(System.String,System.String,System.Object[])"> + <summary> + Assert that a string is either null or equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNullOrEmpty(System.String,System.String)"> + <summary> + Assert that a string is either null or equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNullOrEmpty(System.String)"> + <summary> + Assert that a string is either null or equal to string.Empty + </summary> + <param name="aString">The string to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNullOrEmpty(System.String,System.String,System.Object[])"> + <summary> + Assert that a string is not null or empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNullOrEmpty(System.String,System.String)"> + <summary> + Assert that a string is not null or empty + </summary> + <param name="aString">The string to be tested</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotNullOrEmpty(System.String)"> + <summary> + Assert that a string is not null or empty + </summary> + <param name="aString">The string to be tested</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom(System.Type,System.Object)"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom``1(System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom``1(System.Object,System.String)"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsAssignableFrom``1(System.Object)"> + <summary> + Asserts that an object may be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom(System.Type,System.Object)"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <param name="expected">The expected Type.</param> + <param name="actual">The object under examination</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom``1(System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom``1(System.Object,System.String)"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotAssignableFrom``1(System.Object)"> + <summary> + Asserts that an object may not be assigned a value of a given Type. + </summary> + <typeparam name="T">The expected Type.</typeparam> + <param name="actual">The object under examination</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf(System.Type,System.Object)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOfType(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOfType(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOfType(System.Type,System.Object)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf``1(System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf``1(System.Object,System.String)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsInstanceOf``1(System.Object)"> + <summary> + Asserts that an object is an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf(System.Type,System.Object)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOfType(System.Type,System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOfType(System.Type,System.Object,System.String)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOfType(System.Type,System.Object)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <param name="expected">The expected Type</param> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf``1(System.Object,System.String,System.Object[])"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf``1(System.Object,System.String)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.IsNotInstanceOf``1(System.Object)"> + <summary> + Asserts that an object is not an instance of a given type. + </summary> + <typeparam name="T">The expected Type</typeparam> + <param name="actual">The object being examined</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int32,System.Int32)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Int64,System.Int64)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt32,System.UInt32)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.UInt64,System.UInt64)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Decimal,System.Decimal)"> + <summary> + Verifies that two values are equal. If they are not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Double,System.Double,System.String)"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Double,System.Double)"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Nullable{System.Double},System.Double,System.String,System.Object[])"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Nullable{System.Double},System.Double,System.String)"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Double,System.Nullable{System.Double},System.Double)"> + <summary> + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equal then an <see cref="T:NUnit.Framework.AssertionException"/> is + thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="delta">The maximum acceptable difference between the + the expected and the actual</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Object,System.Object,System.String,System.Object[])"> + <summary> + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Object,System.Object,System.String)"> + <summary> + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreEqual(System.Object,System.Object)"> + <summary> + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int32,System.Int32)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Int64,System.Int64)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt32,System.UInt32)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.UInt64,System.UInt64)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Decimal,System.Decimal)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Single,System.Single,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Single,System.Single,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Single,System.Single)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Double,System.Double,System.String)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Double,System.Double)"> + <summary> + Verifies that two values are not equal. If they are equal, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Object,System.Object,System.String,System.Object[])"> + <summary> + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Object,System.Object,System.String)"> + <summary> + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotEqual(System.Object,System.Object)"> + <summary> + Verifies that two objects are not equal. Two objects are considered + equal if both are null, or if both have the same value. NUnit + has special semantics for some object types. + If they are equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The value that is expected</param> + <param name="actual">The actual value</param> + </member> + <member name="M:NUnit.Framework.Assert.AreSame(System.Object,System.Object,System.String,System.Object[])"> + <summary> + Asserts that two objects refer to the same object. If they + are not the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreSame(System.Object,System.Object,System.String)"> + <summary> + Asserts that two objects refer to the same object. If they + are not the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreSame(System.Object,System.Object)"> + <summary> + Asserts that two objects refer to the same object. If they + are not the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotSame(System.Object,System.Object,System.String,System.Object[])"> + <summary> + Asserts that two objects do not refer to the same object. If they + are the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotSame(System.Object,System.Object,System.String)"> + <summary> + Asserts that two objects do not refer to the same object. If they + are the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.AreNotSame(System.Object,System.Object)"> + <summary> + Asserts that two objects do not refer to the same object. If they + are the same an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The actual object</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int32,System.Int32)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt32,System.UInt32)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Int64,System.Int64)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.UInt64,System.UInt64)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Decimal,System.Decimal)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Double,System.Double,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Double,System.Double)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Single,System.Single,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Single,System.Single,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.Single,System.Single)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.IComparable,System.IComparable,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.IComparable,System.IComparable,System.String)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Greater(System.IComparable,System.IComparable)"> + <summary> + Verifies that the first value is greater than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int32,System.Int32)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt32,System.UInt32)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Int64,System.Int64)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.UInt64,System.UInt64)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Decimal,System.Decimal)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Double,System.Double,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Double,System.Double)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Single,System.Single,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Single,System.Single,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.Single,System.Single)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.IComparable,System.IComparable,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.IComparable,System.IComparable,System.String)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Less(System.IComparable,System.IComparable)"> + <summary> + Verifies that the first value is less than the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int32,System.Int32)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt32,System.UInt32)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Int64,System.Int64)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.UInt64,System.UInt64)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Decimal,System.Decimal)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Double,System.Double,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Double,System.Double)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Single,System.Single,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Single,System.Single,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.Single,System.Single)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.IComparable,System.IComparable,System.String,System.Object[])"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.IComparable,System.IComparable,System.String)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.GreaterOrEqual(System.IComparable,System.IComparable)"> + <summary> + Verifies that the first value is greater than or equal tothe second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be greater</param> + <param name="arg2">The second value, expected to be less</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int32,System.Int32,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int32,System.Int32,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int32,System.Int32)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt32,System.UInt32,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt32,System.UInt32,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt32,System.UInt32)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int64,System.Int64,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int64,System.Int64,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Int64,System.Int64)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt64,System.UInt64,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt64,System.UInt64,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.UInt64,System.UInt64)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Decimal,System.Decimal,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Decimal,System.Decimal,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Decimal,System.Decimal)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Double,System.Double,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Double,System.Double,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Double,System.Double)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Single,System.Single,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Single,System.Single,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.Single,System.Single)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.IComparable,System.IComparable,System.String,System.Object[])"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.IComparable,System.IComparable,System.String)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.LessOrEqual(System.IComparable,System.IComparable)"> + <summary> + Verifies that the first value is less than or equal to the second + value. If it is not, then an + <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="arg1">The first value, expected to be less</param> + <param name="arg2">The second value, expected to be greater</param> + </member> + <member name="M:NUnit.Framework.Assert.Contains(System.Object,System.Collections.ICollection,System.String,System.Object[])"> + <summary> + Asserts that an object is contained in a list. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The list to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Array of objects to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assert.Contains(System.Object,System.Collections.ICollection,System.String)"> + <summary> + Asserts that an object is contained in a list. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The list to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.Assert.Contains(System.Object,System.Collections.ICollection)"> + <summary> + Asserts that an object is contained in a list. + </summary> + <param name="expected">The expected object</param> + <param name="actual">The list to be examined</param> + </member> + <member name="P:NUnit.Framework.Assert.Counter"> + <summary> + Gets the number of assertions executed so far and + resets the counter to zero. + </summary> + </member> + <member name="T:NUnit.Framework.AssertionHelper"> + <summary> + AssertionHelper is an optional base class for user tests, + allowing the use of shorter names for constraints and + asserts and avoiding conflict with the definition of + <see cref="T:NUnit.Framework.Is"/>, from which it inherits much of its + behavior, in certain mock object frameworks. + </summary> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Object,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to Assert.That + </summary> + <param name="constraint">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to Assert.That. + </summary> + <param name="constraint">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to Assert.That + </summary> + <param name="constraint">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="expr">A Constraint expression to be applied</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect``1(``0@,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="constraint">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="constraint">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + </summary> + <param name="expression">A Constraint to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. Works Identically to Assert.That. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Boolean,System.String)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. Works Identically to Assert.That. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(System.Boolean)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.AssertionException"/>. Works Identically Assert.That. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Expect(NUnit.Framework.TestDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + </summary> + <param name="code">A TestDelegate to be executed</param> + <param name="constraint">A ThrowsConstraint used in the test</param> + </member> + <member name="M:NUnit.Framework.AssertionHelper.Map(System.Collections.ICollection)"> + <summary> + Returns a ListMapper based on a collection. + </summary> + <param name="original">The original collection</param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Assume"> + <summary> + Provides static methods to express the assumptions + that must be met for a test to give a meaningful + result. If an assumption is not met, the test + should produce an inconclusive result. + </summary> + </member> + <member name="M:NUnit.Framework.Assume.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.Assume.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Object,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assume.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + </member> + <member name="M:NUnit.Framework.Assume.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expr">A Constraint expression to be applied</param> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assume.That(NUnit.Framework.Constraints.ActualValueDelegate,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="del">An ActualValueDelegate returning the value to be tested</param> + <param name="expr">A Constraint expression to be applied</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assume.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + </member> + <member name="M:NUnit.Framework.Assume.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String)"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.Assume.That``1(``0@,NUnit.Framework.Constraints.IResolveConstraint,System.String,System.Object[])"> + <summary> + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an InconclusiveException on failure. + </summary> + <param name="expression">A Constraint expression to be applied</param> + <param name="actual">The actual value to test</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Boolean,System.String,System.Object[])"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.InconclusiveException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Boolean,System.String)"> + <summary> + Asserts that a condition is true. If the condition is false the method throws + an <see cref="T:NUnit.Framework.InconclusiveException"/>. + </summary> + <param name="condition">The evaluated condition</param> + <param name="message">The message to display if the condition is false</param> + </member> + <member name="M:NUnit.Framework.Assume.That(System.Boolean)"> + <summary> + Asserts that a condition is true. If the condition is false the + method throws an <see cref="T:NUnit.Framework.InconclusiveException"/>. + </summary> + <param name="condition">The evaluated condition</param> + </member> + <member name="M:NUnit.Framework.Assume.That(NUnit.Framework.TestDelegate,NUnit.Framework.Constraints.IResolveConstraint)"> + <summary> + Asserts that the code represented by a delegate throws an exception + that satisfies the constraint provided. + </summary> + <param name="code">A TestDelegate to be executed</param> + <param name="constraint">A ThrowsConstraint used in the test</param> + </member> + <member name="T:NUnit.Framework.CollectionAssert"> + <summary> + A set of Assert methods operationg on one or more collections + </summary> + </member> + <member name="M:NUnit.Framework.CollectionAssert.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreInstancesOfType(System.Collections.IEnumerable,System.Type)"> + <summary> + Asserts that all items contained in collection are of the type specified by expectedType. + </summary> + <param name="collection">IEnumerable containing objects to be considered</param> + <param name="expectedType">System.Type that all objects in collection must be instances of</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreInstancesOfType(System.Collections.IEnumerable,System.Type,System.String)"> + <summary> + Asserts that all items contained in collection are of the type specified by expectedType. + </summary> + <param name="collection">IEnumerable containing objects to be considered</param> + <param name="expectedType">System.Type that all objects in collection must be instances of</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreInstancesOfType(System.Collections.IEnumerable,System.Type,System.String,System.Object[])"> + <summary> + Asserts that all items contained in collection are of the type specified by expectedType. + </summary> + <param name="collection">IEnumerable containing objects to be considered</param> + <param name="expectedType">System.Type that all objects in collection must be instances of</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreNotNull(System.Collections.IEnumerable)"> + <summary> + Asserts that all items contained in collection are not equal to null. + </summary> + <param name="collection">IEnumerable containing objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreNotNull(System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that all items contained in collection are not equal to null. + </summary> + <param name="collection">IEnumerable containing objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreNotNull(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that all items contained in collection are not equal to null. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreUnique(System.Collections.IEnumerable)"> + <summary> + Ensures that every object contained in collection exists within the collection + once and only once. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreUnique(System.Collections.IEnumerable,System.String)"> + <summary> + Ensures that every object contained in collection exists within the collection + once and only once. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AllItemsAreUnique(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Ensures that every object contained in collection exists within the collection + once and only once. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer)"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer,System.String)"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that expected and actual are not exactly equal. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer)"> + <summary> + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that expected and actual are not exactly equal. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer,System.String)"> + <summary> + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are not exactly equal. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEqual(System.Collections.IEnumerable,System.Collections.IEnumerable,System.Collections.IComparer,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="comparer">The IComparer to use in comparing objects from each IEnumerable</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that expected and actual are not equivalent. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that expected and actual are not equivalent. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.AreNotEquivalent(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that expected and actual are not equivalent. + </summary> + <param name="expected">The first IEnumerable of objects to be considered</param> + <param name="actual">The second IEnumerable of objects to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.Contains(System.Collections.IEnumerable,System.Object)"> + <summary> + Asserts that collection contains actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object to be found within collection</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.Contains(System.Collections.IEnumerable,System.Object,System.String)"> + <summary> + Asserts that collection contains actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object to be found within collection</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.Contains(System.Collections.IEnumerable,System.Object,System.String,System.Object[])"> + <summary> + Asserts that collection contains actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object to be found within collection</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.DoesNotContain(System.Collections.IEnumerable,System.Object)"> + <summary> + Asserts that collection does not contain actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object that cannot exist within collection</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.DoesNotContain(System.Collections.IEnumerable,System.Object,System.String)"> + <summary> + Asserts that collection does not contain actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object that cannot exist within collection</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.DoesNotContain(System.Collections.IEnumerable,System.Object,System.String,System.Object[])"> + <summary> + Asserts that collection does not contain actual as an item. + </summary> + <param name="collection">IEnumerable of objects to be considered</param> + <param name="actual">Object that cannot exist within collection</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that superset is not a subject of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that superset is not a subject of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that superset is not a subject of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable)"> + <summary> + Asserts that superset is a subset of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String)"> + <summary> + Asserts that superset is a subset of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + <param name="message">The message that will be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsSubsetOf(System.Collections.IEnumerable,System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Asserts that superset is a subset of subset. + </summary> + <param name="subset">The IEnumerable superset to be considered</param> + <param name="superset">The IEnumerable subset to be considered</param> + <param name="message">The message that will be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsEmpty(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsEmpty(System.Collections.IEnumerable,System.String)"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsEmpty(System.Collections.IEnumerable)"> + <summary> + Assert that an array,list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotEmpty(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotEmpty(System.Collections.IEnumerable,System.String)"> + <summary> + Assert that an array, list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsNotEmpty(System.Collections.IEnumerable)"> + <summary> + Assert that an array,list or other collection is empty + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable,System.String)"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="message">The message to be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable)"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable,System.Collections.IComparer,System.String,System.Object[])"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="comparer">A custom comparer to perform the comparisons</param> + <param name="message">The message to be displayed on failure</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable,System.Collections.IComparer,System.String)"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="comparer">A custom comparer to perform the comparisons</param> + <param name="message">The message to be displayed on failure</param> + </member> + <member name="M:NUnit.Framework.CollectionAssert.IsOrdered(System.Collections.IEnumerable,System.Collections.IComparer)"> + <summary> + Assert that an array, list or other collection is ordered + </summary> + <param name="collection">An array, list or other collection implementing IEnumerable</param> + <param name="comparer">A custom comparer to perform the comparisons</param> + </member> + <member name="T:NUnit.Framework.Contains"> + <summary> + Static helper class used in the constraint-based syntax + </summary> + </member> + <member name="M:NUnit.Framework.Contains.Substring(System.String)"> + <summary> + Creates a new SubstringConstraint + </summary> + <param name="substring">The value of the substring</param> + <returns>A SubstringConstraint</returns> + </member> + <member name="M:NUnit.Framework.Contains.Item(System.Object)"> + <summary> + Creates a new CollectionContainsConstraint. + </summary> + <param name="item">The item that should be found.</param> + <returns>A new CollectionContainsConstraint</returns> + </member> + <member name="T:NUnit.Framework.DirectoryAssert"> + <summary> + Summary description for DirectoryAssert + </summary> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.#ctor"> + <summary> + We don't actually want any instances of this object, but some people + like to inherit from it to add other static methods. Hence, the + protected constructor disallows any instances of this object. + </summary> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String)"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo)"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.String,System.String,System.String,System.Object[])"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.String,System.String,System.String)"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreEqual(System.String,System.String)"> + <summary> + Verifies that two directories are equal. Two directories are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String)"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.IO.DirectoryInfo,System.IO.DirectoryInfo)"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory containing the value that is expected</param> + <param name="actual">A directory containing the actual value</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + <param name="message">The message to display if directories are equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.String,System.String,System.String)"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + <param name="message">The message to display if directories are equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.AreNotEqual(System.String,System.String)"> + <summary> + Asserts that two directories are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A directory path string containing the value that is expected</param> + <param name="actual">A directory path string containing the actual value</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.IO.DirectoryInfo,System.String)"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.IO.DirectoryInfo)"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.String,System.String,System.Object[])"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.String,System.String)"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsEmpty(System.String)"> + <summary> + Asserts that the directory is empty. If it is not empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.IO.DirectoryInfo,System.String)"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.IO.DirectoryInfo)"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.String,System.String,System.Object[])"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.String,System.String)"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="message">The message to display if directories are not equal</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotEmpty(System.String)"> + <summary> + Asserts that the directory is not empty. If it is empty + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String)"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo)"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.String,System.String,System.String)"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsWithin(System.String,System.String)"> + <summary> + Asserts that path contains actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String,System.Object[])"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo,System.String)"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.IO.DirectoryInfo,System.IO.DirectoryInfo)"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.String,System.String,System.String)"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + <param name="message">The message to display if directory is not within the path</param> + </member> + <member name="M:NUnit.Framework.DirectoryAssert.IsNotWithin(System.String,System.String)"> + <summary> + Asserts that path does not contain actual as a subdirectory or + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="directory">A directory to search</param> + <param name="actual">sub-directory asserted to exist under directory</param> + </member> + <member name="T:NUnit.Framework.FileAssert"> + <summary> + Summary description for FileAssert. + </summary> + </member> + <member name="M:NUnit.Framework.FileAssert.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.FileAssert.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.FileAssert.#ctor"> + <summary> + We don't actually want any instances of this object, but some people + like to inherit from it to add other static methods. Hence, the + protected constructor disallows any instances of this object. + </summary> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.Stream,System.IO.Stream,System.String,System.Object[])"> + <summary> + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + <param name="message">The message to display if Streams are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.Stream,System.IO.Stream,System.String)"> + <summary> + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + <param name="message">The message to display if objects are not equal</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.Stream,System.IO.Stream)"> + <summary> + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.FileInfo,System.IO.FileInfo,System.String,System.Object[])"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + <param name="message">The message to display if Streams are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.FileInfo,System.IO.FileInfo,System.String)"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + <param name="message">The message to display if objects are not equal</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.IO.FileInfo,System.IO.FileInfo)"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.String,System.String,System.String,System.Object[])"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + <param name="message">The message to display if Streams are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.String,System.String,System.String)"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + <param name="message">The message to display if objects are not equal</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreEqual(System.String,System.String)"> + <summary> + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.Stream,System.IO.Stream,System.String,System.Object[])"> + <summary> + Asserts that two Streams are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + <param name="message">The message to be displayed when the two Stream are the same.</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.Stream,System.IO.Stream,System.String)"> + <summary> + Asserts that two Streams are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + <param name="message">The message to be displayed when the Streams are the same.</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.Stream,System.IO.Stream)"> + <summary> + Asserts that two Streams are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The expected Stream</param> + <param name="actual">The actual Stream</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.FileInfo,System.IO.FileInfo,System.String,System.Object[])"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + <param name="message">The message to display if Streams are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.FileInfo,System.IO.FileInfo,System.String)"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + <param name="message">The message to display if objects are not equal</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.IO.FileInfo,System.IO.FileInfo)"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">A file containing the value that is expected</param> + <param name="actual">A file containing the actual value</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + <param name="message">The message to display if Streams are not equal</param> + <param name="args">Arguments to be used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.String,System.String,System.String)"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + <param name="message">The message to display if objects are not equal</param> + </member> + <member name="M:NUnit.Framework.FileAssert.AreNotEqual(System.String,System.String)"> + <summary> + Asserts that two files are not equal. If they are equal + an <see cref="T:NUnit.Framework.AssertionException"/> is thrown. + </summary> + <param name="expected">The path to a file containing the value that is expected</param> + <param name="actual">The path to a file containing the actual value</param> + </member> + <member name="T:NUnit.Framework.GlobalSettings"> + <summary> + GlobalSettings is a place for setting default values used + by the framework in performing asserts. + </summary> + </member> + <member name="F:NUnit.Framework.GlobalSettings.DefaultFloatingPointTolerance"> + <summary> + Default tolerance for floating point equality + </summary> + </member> + <member name="T:NUnit.Framework.Has"> + <summary> + Helper class with properties and methods that supply + a number of constraints used in Asserts. + </summary> + </member> + <member name="M:NUnit.Framework.Has.Exactly(System.Int32)"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding only if a specified number of them succeed. + </summary> + </member> + <member name="M:NUnit.Framework.Has.Property(System.String)"> + <summary> + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + </summary> + </member> + <member name="M:NUnit.Framework.Has.Attribute(System.Type)"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Has.Attribute``1"> + <summary> + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + </summary> + </member> + <member name="M:NUnit.Framework.Has.Member(System.Object)"> + <summary> + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + </summary> + </member> + <member name="P:NUnit.Framework.Has.No"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Has.All"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + </summary> + </member> + <member name="P:NUnit.Framework.Has.Some"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + </summary> + </member> + <member name="P:NUnit.Framework.Has.None"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + </summary> + </member> + <member name="P:NUnit.Framework.Has.Length"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Has.Count"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Has.Message"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + </summary> + </member> + <member name="P:NUnit.Framework.Has.InnerException"> + <summary> + Returns a new ConstraintExpression, which will apply the following + constraint to the InnerException property of the object being tested. + </summary> + </member> + <member name="T:NUnit.Framework.IExpectException"> + <summary> + Interface implemented by a user fixture in order to + validate any expected exceptions. It is only called + for test methods marked with the ExpectedException + attribute. + </summary> + </member> + <member name="M:NUnit.Framework.IExpectException.HandleException(System.Exception)"> + <summary> + Method to handle an expected exception + </summary> + <param name="ex">The exception to be handled</param> + </member> + <member name="T:NUnit.Framework.Is"> + <summary> + Helper class with properties and methods that supply + a number of constraints used in Asserts. + </summary> + </member> + <member name="M:NUnit.Framework.Is.EqualTo(System.Object)"> + <summary> + Returns a constraint that tests two items for equality + </summary> + </member> + <member name="M:NUnit.Framework.Is.SameAs(System.Object)"> + <summary> + Returns a constraint that tests that two references are the same object + </summary> + </member> + <member name="M:NUnit.Framework.Is.GreaterThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.GreaterThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.AtLeast(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.LessThan(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.LessThanOrEqualTo(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.AtMost(System.Object)"> + <summary> + Returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + </summary> + </member> + <member name="M:NUnit.Framework.Is.TypeOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.TypeOf``1"> + <summary> + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.InstanceOf(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Is.InstanceOf``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Is.InstanceOfType(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Is.InstanceOfType``1"> + <summary> + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + </summary> + </member> + <member name="M:NUnit.Framework.Is.AssignableFrom(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.AssignableFrom``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.AssignableTo(System.Type)"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.AssignableTo``1"> + <summary> + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.EquivalentTo(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.SubsetOf(System.Collections.IEnumerable)"> + <summary> + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.StringContaining(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.StringStarting(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.StringEnding(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.StringMatching(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Is.SamePath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same as an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Is.SubPath(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Is.SamePathOrUnder(System.String)"> + <summary> + Returns a constraint that tests whether the path provided + is the same path or under an expected path after canonicalization. + </summary> + </member> + <member name="M:NUnit.Framework.Is.InRange``1(``0,``0)"> + <summary> + Returns a constraint that tests whether the actual value falls + within a specified range. + </summary> + </member> + <member name="P:NUnit.Framework.Is.Not"> + <summary> + Returns a ConstraintExpression that negates any + following constraint. + </summary> + </member> + <member name="P:NUnit.Framework.Is.All"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + </summary> + </member> + <member name="P:NUnit.Framework.Is.Null"> + <summary> + Returns a constraint that tests for null + </summary> + </member> + <member name="P:NUnit.Framework.Is.True"> + <summary> + Returns a constraint that tests for True + </summary> + </member> + <member name="P:NUnit.Framework.Is.False"> + <summary> + Returns a constraint that tests for False + </summary> + </member> + <member name="P:NUnit.Framework.Is.Positive"> + <summary> + Returns a constraint that tests for a positive value + </summary> + </member> + <member name="P:NUnit.Framework.Is.Negative"> + <summary> + Returns a constraint that tests for a negative value + </summary> + </member> + <member name="P:NUnit.Framework.Is.NaN"> + <summary> + Returns a constraint that tests for NaN + </summary> + </member> + <member name="P:NUnit.Framework.Is.Empty"> + <summary> + Returns a constraint that tests for empty + </summary> + </member> + <member name="P:NUnit.Framework.Is.Unique"> + <summary> + Returns a constraint that tests whether a collection + contains all unique items. + </summary> + </member> + <member name="P:NUnit.Framework.Is.BinarySerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in binary format. + </summary> + </member> + <member name="P:NUnit.Framework.Is.XmlSerializable"> + <summary> + Returns a constraint that tests whether an object graph is serializable in xml format. + </summary> + </member> + <member name="P:NUnit.Framework.Is.Ordered"> + <summary> + Returns a constraint that tests whether a collection is ordered + </summary> + </member> + <member name="T:NUnit.Framework.Iz"> + <summary> + The Iz class is a synonym for Is intended for use in VB, + which regards Is as a keyword. + </summary> + </member> + <member name="T:NUnit.Framework.List"> + <summary> + The List class is a helper class with properties and methods + that supply a number of constraints used with lists and collections. + </summary> + </member> + <member name="M:NUnit.Framework.List.Map(System.Collections.ICollection)"> + <summary> + List.Map returns a ListMapper, which can be used to map + the original collection to another collection. + </summary> + <param name="actual"></param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.ListMapper"> + <summary> + ListMapper is used to transform a collection used as an actual argument + producing another collection to be used in the assertion. + </summary> + </member> + <member name="M:NUnit.Framework.ListMapper.#ctor(System.Collections.ICollection)"> + <summary> + Construct a ListMapper based on a collection + </summary> + <param name="original">The collection to be transformed</param> + </member> + <member name="M:NUnit.Framework.ListMapper.Property(System.String)"> + <summary> + Produces a collection containing all the values of a property + </summary> + <param name="name">The collection of property values</param> + <returns></returns> + </member> + <member name="T:NUnit.Framework.Randomizer"> + <summary> + Randomizer returns a set of random values in a repeatable + way, to allow re-running of tests if necessary. + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.GetRandomizer(System.Reflection.MemberInfo)"> + <summary> + Get a randomizer for a particular member, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.GetRandomizer(System.Reflection.ParameterInfo)"> + <summary> + Get a randomizer for a particular parameter, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.#ctor"> + <summary> + Construct a randomizer using a random seed + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.#ctor(System.Int32)"> + <summary> + Construct a randomizer using a specified seed + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.GetDoubles(System.Int32)"> + <summary> + Return an array of random doubles between 0.0 and 1.0. + </summary> + <param name="count"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.Randomizer.GetDoubles(System.Double,System.Double,System.Int32)"> + <summary> + Return an array of random doubles with values in a specified range. + </summary> + </member> + <member name="M:NUnit.Framework.Randomizer.GetInts(System.Int32,System.Int32,System.Int32)"> + <summary> + Return an array of random ints with values in a specified range. + </summary> + </member> + <member name="P:NUnit.Framework.Randomizer.RandomSeed"> + <summary> + Get a random seed for use in creating a randomizer. + </summary> + </member> + <member name="T:NUnit.Framework.SpecialValue"> + <summary> + The SpecialValue enum is used to represent TestCase arguments + that cannot be used as arguments to an Attribute. + </summary> + </member> + <member name="F:NUnit.Framework.SpecialValue.Null"> + <summary> + Null represents a null value, which cannot be used as an + argument to an attriute under .NET 1.x + </summary> + </member> + <member name="T:NUnit.Framework.StringAssert"> + <summary> + Basic Asserts on strings. + </summary> + </member> + <member name="M:NUnit.Framework.StringAssert.Equals(System.Object,System.Object)"> + <summary> + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.StringAssert.ReferenceEquals(System.Object,System.Object)"> + <summary> + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + </summary> + <param name="a"></param> + <param name="b"></param> + </member> + <member name="M:NUnit.Framework.StringAssert.Contains(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string is found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.Contains(System.String,System.String,System.String)"> + <summary> + Asserts that a string is found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.Contains(System.String,System.String)"> + <summary> + Asserts that a string is found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotContain(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string is not found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotContain(System.String,System.String,System.String)"> + <summary> + Asserts that a string is found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotContain(System.String,System.String)"> + <summary> + Asserts that a string is found within another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.StartsWith(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string starts with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.StartsWith(System.String,System.String,System.String)"> + <summary> + Asserts that a string starts with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.StartsWith(System.String,System.String)"> + <summary> + Asserts that a string starts with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotStartWith(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string does not start with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotStartWith(System.String,System.String,System.String)"> + <summary> + Asserts that a string does not start with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotStartWith(System.String,System.String)"> + <summary> + Asserts that a string does not start with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.EndsWith(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string ends with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.EndsWith(System.String,System.String,System.String)"> + <summary> + Asserts that a string ends with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.EndsWith(System.String,System.String)"> + <summary> + Asserts that a string ends with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotEndWith(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string does not end with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotEndWith(System.String,System.String,System.String)"> + <summary> + Asserts that a string does not end with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotEndWith(System.String,System.String)"> + <summary> + Asserts that a string does not end with another string. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The string to be examined</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreEqualIgnoringCase(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that two strings are equal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreEqualIgnoringCase(System.String,System.String,System.String)"> + <summary> + Asserts that two strings are equal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreEqualIgnoringCase(System.String,System.String)"> + <summary> + Asserts that two strings are equal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreNotEqualIgnoringCase(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that two strings are not equal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreNotEqualIgnoringCase(System.String,System.String,System.String)"> + <summary> + Asserts that two strings are Notequal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.AreNotEqualIgnoringCase(System.String,System.String)"> + <summary> + Asserts that two strings are not equal, without regard to case. + </summary> + <param name="expected">The expected string</param> + <param name="actual">The actual string</param> + </member> + <member name="M:NUnit.Framework.StringAssert.IsMatch(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string matches an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be matched</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.IsMatch(System.String,System.String,System.String)"> + <summary> + Asserts that a string matches an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be matched</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.IsMatch(System.String,System.String)"> + <summary> + Asserts that a string matches an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be matched</param> + <param name="actual">The actual string</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotMatch(System.String,System.String,System.String,System.Object[])"> + <summary> + Asserts that a string does not match an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be used</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + <param name="args">Arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotMatch(System.String,System.String,System.String)"> + <summary> + Asserts that a string does not match an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be used</param> + <param name="actual">The actual string</param> + <param name="message">The message to display in case of failure</param> + </member> + <member name="M:NUnit.Framework.StringAssert.DoesNotMatch(System.String,System.String)"> + <summary> + Asserts that a string does not match an expected regular expression pattern. + </summary> + <param name="pattern">The regex pattern to be used</param> + <param name="actual">The actual string</param> + </member> + <member name="T:NUnit.Framework.TestCaseData"> + <summary> + The TestCaseData class represents a set of arguments + and other parameter info to be used for a parameterized + test case. It provides a number of instance modifiers + for use in initializing the test case. + + Note: Instance modifiers are getters that return + the same instance after modifying it's state. + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.arguments"> + <summary> + The argument list to be provided to the test + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.expectedResult"> + <summary> + The expected result to be returned + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.hasExpectedResult"> + <summary> + Set to true if this has an expected result + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.expectedExceptionType"> + <summary> + The expected exception Type + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.expectedExceptionName"> + <summary> + The FullName of the expected exception + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.testName"> + <summary> + The name to be used for the test + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.description"> + <summary> + The description of the test + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.properties"> + <summary> + A dictionary of properties, used to add information + to tests without requiring the class to change. + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.isIgnored"> + <summary> + If true, indicates that the test case is to be ignored + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.isExplicit"> + <summary> + If true, indicates that the test case is marked explicit + </summary> + </member> + <member name="F:NUnit.Framework.TestCaseData.ignoreReason"> + <summary> + The reason for ignoring a test case + </summary> + </member> + <member name="M:NUnit.Framework.TestCaseData.#ctor(System.Object[])"> + <summary> + Initializes a new instance of the <see cref="T:TestCaseData"/> class. + </summary> + <param name="args">The arguments.</param> + </member> + <member name="M:NUnit.Framework.TestCaseData.#ctor(System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:TestCaseData"/> class. + </summary> + <param name="arg">The argument.</param> + </member> + <member name="M:NUnit.Framework.TestCaseData.#ctor(System.Object,System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:TestCaseData"/> class. + </summary> + <param name="arg1">The first argument.</param> + <param name="arg2">The second argument.</param> + </member> + <member name="M:NUnit.Framework.TestCaseData.#ctor(System.Object,System.Object,System.Object)"> + <summary> + Initializes a new instance of the <see cref="T:TestCaseData"/> class. + </summary> + <param name="arg1">The first argument.</param> + <param name="arg2">The second argument.</param> + <param name="arg3">The third argument.</param> + </member> + <member name="M:NUnit.Framework.TestCaseData.Returns(System.Object)"> + <summary> + Sets the expected result for the test + </summary> + <param name="result">The expected result</param> + <returns>A modified TestCaseData</returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.Throws(System.Type)"> + <summary> + Sets the expected exception type for the test + </summary> + <param name="exceptionType">Type of the expected exception.</param> + <returns>The modified TestCaseData instance</returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.Throws(System.String)"> + <summary> + Sets the expected exception type for the test + </summary> + <param name="exceptionName">FullName of the expected exception.</param> + <returns>The modified TestCaseData instance</returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetName(System.String)"> + <summary> + Sets the name of the test case + </summary> + <returns>The modified TestCaseData instance</returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetDescription(System.String)"> + <summary> + Sets the description for the test case + being constructed. + </summary> + <param name="description">The description.</param> + <returns>The modified TestCaseData instance.</returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetCategory(System.String)"> + <summary> + Applies a category to the test + </summary> + <param name="category"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetProperty(System.String,System.String)"> + <summary> + Applies a named property to the test + </summary> + <param name="propName"></param> + <param name="propValue"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetProperty(System.String,System.Int32)"> + <summary> + Applies a named property to the test + </summary> + <param name="propName"></param> + <param name="propValue"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.SetProperty(System.String,System.Double)"> + <summary> + Applies a named property to the test + </summary> + <param name="propName"></param> + <param name="propValue"></param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.Ignore"> + <summary> + Ignores this TestCase. + </summary> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.Ignore(System.String)"> + <summary> + Ignores this TestCase, specifying the reason. + </summary> + <param name="reason">The reason.</param> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.MakeExplicit"> + <summary> + Marks this TestCase as Explicit + </summary> + <returns></returns> + </member> + <member name="M:NUnit.Framework.TestCaseData.MakeExplicit(System.String)"> + <summary> + Marks this TestCase as Explicit, specifying the reason. + </summary> + <param name="reason">The reason.</param> + <returns></returns> + </member> + <member name="P:NUnit.Framework.TestCaseData.Arguments"> + <summary> + Gets the argument list to be provided to the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.Result"> + <summary> + Gets the expected result + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.HasExpectedResult"> + <summary> + Returns true if the result has been set + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.ExpectedException"> + <summary> + Gets the expected exception Type + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.ExpectedExceptionName"> + <summary> + Gets the FullName of the expected exception + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.TestName"> + <summary> + Gets the name to be used for the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.Description"> + <summary> + Gets the description of the test + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.Ignored"> + <summary> + Gets a value indicating whether this <see cref="T:NUnit.Framework.ITestCaseData"/> is ignored. + </summary> + <value><c>true</c> if ignored; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.TestCaseData.Explicit"> + <summary> + Gets a value indicating whether this <see cref="T:NUnit.Framework.ITestCaseData"/> is explicit. + </summary> + <value><c>true</c> if explicit; otherwise, <c>false</c>.</value> + </member> + <member name="P:NUnit.Framework.TestCaseData.IgnoreReason"> + <summary> + Gets the ignore reason. + </summary> + <value>The ignore reason.</value> + </member> + <member name="P:NUnit.Framework.TestCaseData.Categories"> + <summary> + Gets a list of categories associated with this test. + </summary> + </member> + <member name="P:NUnit.Framework.TestCaseData.Properties"> + <summary> + Gets the property dictionary for this test + </summary> + </member> + <member name="T:NUnit.Framework.TestContext"> + <summary> + Provide the context information of the current test + </summary> + </member> + <member name="M:NUnit.Framework.TestContext.#ctor(System.Collections.IDictionary)"> + <summary> + Constructs a TestContext using the provided context dictionary + </summary> + <param name="context">A context dictionary</param> + </member> + <member name="P:NUnit.Framework.TestContext.CurrentContext"> + <summary> + Get the current test context. This is created + as needed. The user may save the context for + use within a test, but it should not be used + outside the test for which it is created. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.Test"> + <summary> + Gets a TestAdapter representing the currently executing test in this context. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.Result"> + <summary> + Gets a ResultAdapter representing the current result for the test + executing in this context. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.TestDirectory"> + <summary> + Gets the directory containing the current test assembly. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.WorkDirectory"> + <summary> + Gets the directory to be used for outputing files created + by this test run. + </summary> + </member> + <member name="T:NUnit.Framework.TestContext.TestAdapter"> + <summary> + TestAdapter adapts a Test for consumption by + the user test code. + </summary> + </member> + <member name="M:NUnit.Framework.TestContext.TestAdapter.#ctor(System.Collections.IDictionary)"> + <summary> + Constructs a TestAdapter for this context + </summary> + <param name="context">The context dictionary</param> + </member> + <member name="P:NUnit.Framework.TestContext.TestAdapter.Name"> + <summary> + The name of the test. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.TestAdapter.FullName"> + <summary> + The FullName of the test + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.TestAdapter.Properties"> + <summary> + The properties of the test. + </summary> + </member> + <member name="T:NUnit.Framework.TestContext.ResultAdapter"> + <summary> + ResultAdapter adapts a TestResult for consumption by + the user test code. + </summary> + </member> + <member name="M:NUnit.Framework.TestContext.ResultAdapter.#ctor(System.Collections.IDictionary)"> + <summary> + Construct a ResultAdapter for a context + </summary> + <param name="context">The context holding the result</param> + </member> + <member name="P:NUnit.Framework.TestContext.ResultAdapter.State"> + <summary> + The TestState of current test. This maps to the ResultState + used in nunit.core and is subject to change in the future. + </summary> + </member> + <member name="P:NUnit.Framework.TestContext.ResultAdapter.Status"> + <summary> + The TestStatus of current test. This enum will be used + in future versions of NUnit and so is to be preferred + to the TestState value. + </summary> + </member> + <member name="T:NUnit.Framework.TestDetails"> + <summary> + Provides details about a test + </summary> + </member> + <member name="M:NUnit.Framework.TestDetails.#ctor(System.Object,System.Reflection.MethodInfo,System.String,System.String,System.Boolean)"> + <summary> + Creates an instance of TestDetails + </summary> + <param name="fixture">The fixture that the test is a member of, if available.</param> + <param name="method">The method that implements the test, if available.</param> + <param name="fullName">The full name of the test.</param> + <param name="type">A string representing the type of test, e.g. "Test Case".</param> + <param name="isSuite">Indicates if the test represents a suite of tests.</param> + </member> + <member name="P:NUnit.Framework.TestDetails.Fixture"> + <summary> + The fixture that the test is a member of, if available. + </summary> + </member> + <member name="P:NUnit.Framework.TestDetails.Method"> + <summary> + The method that implements the test, if available. + </summary> + </member> + <member name="P:NUnit.Framework.TestDetails.FullName"> + <summary> + The full name of the test. + </summary> + </member> + <member name="P:NUnit.Framework.TestDetails.Type"> + <summary> + A string representing the type of test, e.g. "Test Case". + </summary> + </member> + <member name="P:NUnit.Framework.TestDetails.IsSuite"> + <summary> + Indicates if the test represents a suite of tests. + </summary> + </member> + <member name="T:NUnit.Framework.TestState"> + <summary> + The ResultState enum indicates the result of running a test + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Inconclusive"> + <summary> + The result is inconclusive + </summary> + </member> + <member name="F:NUnit.Framework.TestState.NotRunnable"> + <summary> + The test was not runnable. + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Skipped"> + <summary> + The test has been skipped. + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Ignored"> + <summary> + The test has been ignored. + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Success"> + <summary> + The test succeeded + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Failure"> + <summary> + The test failed + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Error"> + <summary> + The test encountered an unexpected exception + </summary> + </member> + <member name="F:NUnit.Framework.TestState.Cancelled"> + <summary> + The test was cancelled by the user + </summary> + </member> + <member name="T:NUnit.Framework.TestStatus"> + <summary> + The TestStatus enum indicates the result of running a test + </summary> + </member> + <member name="F:NUnit.Framework.TestStatus.Inconclusive"> + <summary> + The test was inconclusive + </summary> + </member> + <member name="F:NUnit.Framework.TestStatus.Skipped"> + <summary> + The test has skipped + </summary> + </member> + <member name="F:NUnit.Framework.TestStatus.Passed"> + <summary> + The test succeeded + </summary> + </member> + <member name="F:NUnit.Framework.TestStatus.Failed"> + <summary> + The test failed + </summary> + </member> + <member name="T:NUnit.Framework.Text"> + <summary> + Helper class with static methods used to supply constraints + that operate on strings. + </summary> + </member> + <member name="M:NUnit.Framework.Text.Contains(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.DoesNotContain(System.String)"> + <summary> + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.StartsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.DoesNotStartWith(System.String)"> + <summary> + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.EndsWith(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.DoesNotEndWith(System.String)"> + <summary> + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.Matches(System.String)"> + <summary> + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + </summary> + </member> + <member name="M:NUnit.Framework.Text.DoesNotMatch(System.String)"> + <summary> + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + </summary> + </member> + <member name="P:NUnit.Framework.Text.All"> + <summary> + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + </summary> + </member> + <member name="T:NUnit.Framework.TextMessageWriter"> + <summary> + TextMessageWriter writes constraint descriptions and messages + in displayable form as a text stream. It tailors the display + of individual message components to form the standard message + format of NUnit assertion failure messages. + </summary> + </member> + <member name="F:NUnit.Framework.TextMessageWriter.Pfx_Expected"> + <summary> + Prefix used for the expected value line of a message + </summary> + </member> + <member name="F:NUnit.Framework.TextMessageWriter.Pfx_Actual"> + <summary> + Prefix used for the actual value line of a message + </summary> + </member> + <member name="F:NUnit.Framework.TextMessageWriter.PrefixLength"> + <summary> + Length of a message prefix + </summary> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.#ctor"> + <summary> + Construct a TextMessageWriter + </summary> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.#ctor(System.String,System.Object[])"> + <summary> + Construct a TextMessageWriter, specifying a user message + and optional formatting arguments. + </summary> + <param name="userMessage"></param> + <param name="args"></param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteMessageLine(System.Int32,System.String,System.Object[])"> + <summary> + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + </summary> + <param name="level">The indentation level of the message</param> + <param name="message">The message to be written</param> + <param name="args">Any arguments used in formatting the message</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.DisplayDifferences(NUnit.Framework.Constraints.Constraint)"> + <summary> + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + </summary> + <param name="constraint">The constraint that failed</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.DisplayDifferences(System.Object,System.Object)"> + <summary> + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value causing the failure</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.DisplayDifferences(System.Object,System.Object,NUnit.Framework.Constraints.Tolerance)"> + <summary> + Display Expected and Actual lines for given values, including + a tolerance value on the expected line. + </summary> + <param name="expected">The expected value</param> + <param name="actual">The actual value causing the failure</param> + <param name="tolerance">The tolerance within which the test was made</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.DisplayStringDifferences(System.String,System.String,System.Int32,System.Boolean,System.Boolean)"> + <summary> + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + </summary> + <param name="expected">The expected string value</param> + <param name="actual">The actual string value</param> + <param name="mismatch">The point at which the strings don't match or -1</param> + <param name="ignoreCase">If true, case is ignored in string comparisons</param> + <param name="clipping">If true, clip the strings to fit the max line length</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteConnector(System.String)"> + <summary> + Writes the text for a connector. + </summary> + <param name="connector">The connector.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WritePredicate(System.String)"> + <summary> + Writes the text for a predicate. + </summary> + <param name="predicate">The predicate.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteModifier(System.String)"> + <summary> + Write the text for a modifier. + </summary> + <param name="modifier">The modifier.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteExpectedValue(System.Object)"> + <summary> + Writes the text for an expected value. + </summary> + <param name="expected">The expected value.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteActualValue(System.Object)"> + <summary> + Writes the text for an actual value. + </summary> + <param name="actual">The actual value.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteValue(System.Object)"> + <summary> + Writes the text for a generalized value. + </summary> + <param name="val">The value.</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteCollectionElements(System.Collections.IEnumerable,System.Int32,System.Int32)"> + <summary> + Writes the text for a collection value, + starting at a particular point, to a max length + </summary> + <param name="collection">The collection containing elements to write.</param> + <param name="start">The starting point of the elements to write</param> + <param name="max">The maximum number of elements to write</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteExpectedLine(NUnit.Framework.Constraints.Constraint)"> + <summary> + Write the generic 'Expected' line for a constraint + </summary> + <param name="constraint">The constraint that failed</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteExpectedLine(System.Object)"> + <summary> + Write the generic 'Expected' line for a given value + </summary> + <param name="expected">The expected value</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteExpectedLine(System.Object,NUnit.Framework.Constraints.Tolerance)"> + <summary> + Write the generic 'Expected' line for a given value + and tolerance. + </summary> + <param name="expected">The expected value</param> + <param name="tolerance">The tolerance within which the test was made</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteActualLine(NUnit.Framework.Constraints.Constraint)"> + <summary> + Write the generic 'Actual' line for a constraint + </summary> + <param name="constraint">The constraint for which the actual value is to be written</param> + </member> + <member name="M:NUnit.Framework.TextMessageWriter.WriteActualLine(System.Object)"> + <summary> + Write the generic 'Actual' line for a given value + </summary> + <param name="actual">The actual value causing a failure</param> + </member> + <member name="P:NUnit.Framework.TextMessageWriter.MaxLineLength"> + <summary> + Gets or sets the maximum line length for this writer + </summary> + </member> + <member name="T:NUnit.Framework.Throws"> + <summary> + Helper class with properties and methods that supply + constraints that operate on exceptions. + </summary> + </member> + <member name="M:NUnit.Framework.Throws.TypeOf(System.Type)"> + <summary> + Creates a constraint specifying the exact type of exception expected + </summary> + </member> + <member name="M:NUnit.Framework.Throws.TypeOf``1"> + <summary> + Creates a constraint specifying the exact type of exception expected + </summary> + </member> + <member name="M:NUnit.Framework.Throws.InstanceOf(System.Type)"> + <summary> + Creates a constraint specifying the type of exception expected + </summary> + </member> + <member name="M:NUnit.Framework.Throws.InstanceOf``1"> + <summary> + Creates a constraint specifying the type of exception expected + </summary> + </member> + <member name="P:NUnit.Framework.Throws.Exception"> + <summary> + Creates a constraint specifying an expected exception + </summary> + </member> + <member name="P:NUnit.Framework.Throws.InnerException"> + <summary> + Creates a constraint specifying an exception with a given InnerException + </summary> + </member> + <member name="P:NUnit.Framework.Throws.TargetInvocationException"> + <summary> + Creates a constraint specifying an expected TargetInvocationException + </summary> + </member> + <member name="P:NUnit.Framework.Throws.ArgumentException"> + <summary> + Creates a constraint specifying an expected TargetInvocationException + </summary> + </member> + <member name="P:NUnit.Framework.Throws.InvalidOperationException"> + <summary> + Creates a constraint specifying an expected TargetInvocationException + </summary> + </member> + <member name="P:NUnit.Framework.Throws.Nothing"> + <summary> + Creates a constraint specifying that no exception is thrown + </summary> + </member> + </members> +</doc> diff --git a/packages/NUnit.2.6.2/license.txt b/packages/NUnit.2.6.2/license.txt new file mode 100644 index 0000000000000000000000000000000000000000..530a6e0036d4df30b702fcf1225ce6e43e914fff --- /dev/null +++ b/packages/NUnit.2.6.2/license.txt @@ -0,0 +1,15 @@ +Copyright © 2002-2012 Charlie Poole +Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov +Copyright © 2000-2002 Philip A. Craig + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. + +Portions Copyright © 2002-2012 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution.