From 764c4ce9baeea715e6449fd0401e0b1b155a1d31 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Tue, 20 Dec 2016 12:28:22 +0100 Subject: [PATCH] ShiftStrategy & GUI: Added Params CLUpshiftMinAcceleration, CCUpshiftMinAcceleration in GUI and JSON File; Used in ShiftStrategy for Shift-Decisions --- VECTO/GUI/GearboxForm.Designer.vb | 2217 +++++++++-------- VECTO/GUI/GearboxForm.vb | 702 +++--- VECTO/Input Files/Gearbox.vb | 216 +- VECTO/OutputData/JSONFileWriter.vb | 110 +- .../InputData/EngineeringInputData.cs | 17 +- .../Utils/StringExtensionMethods.cs | 7 + .../InputData/FileIO/JSON/JSONGearboxData.cs | 76 +- .../TorqueConverterDataReader.cs | 46 +- .../EngineeringDataAdapter.cs | 13 +- .../Data/Gearbox/TorqueConverterData.cs | 27 +- .../Impl/ATShiftStrategy.cs | 13 +- .../Impl/CombustionEngine.cs | 25 +- .../Models/SimulationComponent/Impl/Driver.cs | 58 +- .../Impl/EngineOnlyCombustionEngine.cs | 6 +- VectoCore/VectoCore/VectoCore.csproj | 1 + .../VectoCoreTest/Integration/ATPowerTrain.cs | 7 +- .../TorqueConverterDataTest.cs | 34 +- 17 files changed, 1846 insertions(+), 1729 deletions(-) diff --git a/VECTO/GUI/GearboxForm.Designer.vb b/VECTO/GUI/GearboxForm.Designer.vb index e3a6f51e4e..288972f60a 100644 --- a/VECTO/GUI/GearboxForm.Designer.vb +++ b/VECTO/GUI/GearboxForm.Designer.vb @@ -35,1081 +35,1135 @@ Partial Class GearboxForm 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. <DebuggerStepThrough()> _ Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GearboxForm)) - 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.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.ColumnHeader6 = 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.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.tbUpshiftMinAcceleration = New System.Windows.Forms.TextBox() - Me.tbUpshiftAfterDownshift = New System.Windows.Forms.TextBox() - Me.tbDownshiftAfterUpshift = New System.Windows.Forms.TextBox() - Me.Label24 = New System.Windows.Forms.Label() - Me.Label23 = New System.Windows.Forms.Label() - Me.Label22 = New System.Windows.Forms.Label() - Me.Label21 = New System.Windows.Forms.Label() - Me.Label20 = New System.Windows.Forms.Label() - Me.Label19 = New System.Windows.Forms.Label() - Me.PnTorqRes = New System.Windows.Forms.Panel() - Me.Label25 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label4 = New System.Windows.Forms.Label() - Me.TbTqResv = New System.Windows.Forms.TextBox() - Me.TbMinTimeBetweenShifts = New System.Windows.Forms.TextBox() - Me.Label12 = New System.Windows.Forms.Label() - Me.Label13 = New System.Windows.Forms.Label() - 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.Label26 = New System.Windows.Forms.Label() - Me.tbTCmaxSpeed = New System.Windows.Forms.TextBox() - Me.Label27 = New System.Windows.Forms.Label() - Me.BtTCShiftFileBrowse = New System.Windows.Forms.Button() - Me.Label17 = New System.Windows.Forms.Label() - Me.TBTCShiftPolygon = New System.Windows.Forms.TextBox() - Me.LblTCShiftFile = New System.Windows.Forms.Label() - Me.Label18 = New System.Windows.Forms.Label() - Me.Label15 = New System.Windows.Forms.Label() - Me.TbTCinertia = New System.Windows.Forms.TextBox() - Me.Label1 = 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.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.GroupBox5 = New System.Windows.Forms.GroupBox() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.lbAtShiftTime = New System.Windows.Forms.Label() - Me.tbATShiftTime = New System.Windows.Forms.TextBox() - Me.Label28 = New System.Windows.Forms.Label() - Me.Label29 = New System.Windows.Forms.Label() - Me.tbATInertiaFactor = New System.Windows.Forms.TextBox() - Me.lbATInertiaFactor = New System.Windows.Forms.Label() - Me.ToolStrip1.SuspendLayout() - Me.StatusStrip1.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.GrGearShift.SuspendLayout() - Me.GroupBox1.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.GroupBox5.SuspendLayout() - Me.Panel1.SuspendLayout() - 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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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, 680) - 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, 654) - Me.ButCancel.Name = "ButCancel" - Me.ButCancel.Size = New System.Drawing.Size(75, 23) - Me.ButCancel.TabIndex = 7 - 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, 654) - Me.ButOK.Name = "ButOK" - Me.ButOK.Size = New System.Drawing.Size(75, 23) - Me.ButOK.TabIndex = 6 - 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 = 1 - ' - 'LvGears - ' - Me.LvGears.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6}) - 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 = 0 - Me.LvGears.TabStop = False - Me.LvGears.UseCompatibleStateImageBehavior = False - Me.LvGears.View = System.Windows.Forms.View.Details - ' - 'ColumnHeader1 - ' - Me.ColumnHeader1.Text = "Gear" - Me.ColumnHeader1.Width = 46 - ' - 'ColumnHeader2 - ' - Me.ColumnHeader2.Text = "Ratio" - Me.ColumnHeader2.Width = 50 - ' - 'ColumnHeader3 - ' - Me.ColumnHeader3.Text = "Loss Map or Efficiency" - Me.ColumnHeader3.Width = 128 - ' - 'ColumnHeader5 - ' - Me.ColumnHeader5.Text = "Shift Polygons" - Me.ColumnHeader5.Width = 94 - ' - 'ColumnHeader6 - ' - Me.ColumnHeader6.Text = "Max Torque" - Me.ColumnHeader6.Width = 95 - ' - '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 = 0 - ' - '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.TUGraz.VECTO.My.Resources.Resources.VECTO_GBX - Me.PictureBox1.Location = New System.Drawing.Point(0, 28) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(461, 40) - Me.PictureBox1.TabIndex = 43 - Me.PictureBox1.TabStop = False - ' - 'BtRemGear - ' - Me.BtRemGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon - Me.BtRemGear.Location = New System.Drawing.Point(30, 202) - Me.BtRemGear.Name = "BtRemGear" - Me.BtRemGear.Size = New System.Drawing.Size(24, 24) - Me.BtRemGear.TabIndex = 2 - Me.BtRemGear.UseVisualStyleBackColor = True - ' - 'GrGearShift - ' - Me.GrGearShift.Controls.Add(Me.GroupBox1) - Me.GrGearShift.Controls.Add(Me.PnTorqRes) - Me.GrGearShift.Controls.Add(Me.TbMinTimeBetweenShifts) - Me.GrGearShift.Controls.Add(Me.Label12) - Me.GrGearShift.Controls.Add(Me.Label13) - 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, 291) - Me.GrGearShift.TabIndex = 3 - Me.GrGearShift.TabStop = False - Me.GrGearShift.Text = "Gear shift parameters" - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration) - Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift) - Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift) - Me.GroupBox1.Controls.Add(Me.Label24) - Me.GroupBox1.Controls.Add(Me.Label23) - Me.GroupBox1.Controls.Add(Me.Label22) - Me.GroupBox1.Controls.Add(Me.Label21) - Me.GroupBox1.Controls.Add(Me.Label20) - Me.GroupBox1.Controls.Add(Me.Label19) - Me.GroupBox1.Location = New System.Drawing.Point(6, 82) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(429, 100) - Me.GroupBox1.TabIndex = 10 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Shift Strategy Parameters" - ' - 'tbUpshiftMinAcceleration - ' - Me.tbUpshiftMinAcceleration.Location = New System.Drawing.Point(209, 71) - Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration" - Me.tbUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20) - Me.tbUpshiftMinAcceleration.TabIndex = 8 - ' - 'tbUpshiftAfterDownshift - ' - Me.tbUpshiftAfterDownshift.Location = New System.Drawing.Point(209, 45) - Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift" - Me.tbUpshiftAfterDownshift.Size = New System.Drawing.Size(57, 20) - Me.tbUpshiftAfterDownshift.TabIndex = 7 - ' - 'tbDownshiftAfterUpshift - ' - Me.tbDownshiftAfterUpshift.Location = New System.Drawing.Point(209, 20) - Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift" - Me.tbDownshiftAfterUpshift.Size = New System.Drawing.Size(57, 20) - Me.tbDownshiftAfterUpshift.TabIndex = 6 - ' - 'Label24 - ' - Me.Label24.AutoSize = True - Me.Label24.Location = New System.Drawing.Point(275, 74) - Me.Label24.Name = "Label24" - Me.Label24.Size = New System.Drawing.Size(34, 13) - Me.Label24.TabIndex = 5 - Me.Label24.Text = "[m/s²]" - ' - 'Label23 - ' - Me.Label23.AutoSize = True - Me.Label23.Location = New System.Drawing.Point(275, 48) - Me.Label23.Name = "Label23" - Me.Label23.Size = New System.Drawing.Size(18, 13) - Me.Label23.TabIndex = 4 - Me.Label23.Text = "[s]" - ' - 'Label22 - ' - Me.Label22.AutoSize = True - Me.Label22.Location = New System.Drawing.Point(275, 25) - Me.Label22.Name = "Label22" - Me.Label22.Size = New System.Drawing.Size(18, 13) - Me.Label22.TabIndex = 3 - Me.Label22.Text = "[s]" - ' - 'Label21 - ' - Me.Label21.AutoSize = True - Me.Label21.Location = New System.Drawing.Point(20, 74) - Me.Label21.Name = "Label21" - Me.Label21.Size = New System.Drawing.Size(146, 13) - Me.Label21.TabIndex = 2 - Me.Label21.Text = "Min. acceleration after upshift" - ' - 'Label20 - ' - Me.Label20.AutoSize = True - Me.Label20.Location = New System.Drawing.Point(20, 48) - Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(137, 13) - Me.Label20.TabIndex = 1 - Me.Label20.Text = "Upshift afer downshift delay" - ' - 'Label19 - ' - Me.Label19.AutoSize = True - Me.Label19.Location = New System.Drawing.Point(20, 25) - Me.Label19.Name = "Label19" - Me.Label19.Size = New System.Drawing.Size(137, 13) - Me.Label19.TabIndex = 0 - Me.Label19.Text = "Downshift afer upshift delay" - ' - 'PnTorqRes - ' - Me.PnTorqRes.Controls.Add(Me.Label25) - 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(9, 20) - Me.PnTorqRes.Name = "PnTorqRes" - Me.PnTorqRes.Size = New System.Drawing.Size(426, 32) - Me.PnTorqRes.TabIndex = 2 - ' - 'Label25 - ' - Me.Label25.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Label25.AutoSize = True - Me.Label25.Location = New System.Drawing.Point(294, 9) - Me.Label25.Name = "Label25" - Me.Label25.Size = New System.Drawing.Size(129, 13) - Me.Label25.TabIndex = 1 - Me.Label25.Text = "(Early shift-up, Skip gears)" - ' - '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(18, 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(272, 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(206, 6) - Me.TbTqResv.Name = "TbTqResv" - Me.TbTqResv.Size = New System.Drawing.Size(57, 20) - Me.TbTqResv.TabIndex = 0 - ' - 'TbMinTimeBetweenShifts - ' - Me.TbMinTimeBetweenShifts.Location = New System.Drawing.Point(215, 52) - Me.TbMinTimeBetweenShifts.Name = "TbMinTimeBetweenShifts" - Me.TbMinTimeBetweenShifts.Size = New System.Drawing.Size(57, 20) - Me.TbMinTimeBetweenShifts.TabIndex = 3 - ' - 'Label12 - ' - Me.Label12.AutoSize = True - Me.Label12.Location = New System.Drawing.Point(281, 55) - 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(27, 55) - Me.Label13.Name = "Label13" - Me.Label13.Size = New System.Drawing.Size(162, 13) - Me.Label13.TabIndex = 8 - Me.Label13.Text = "Minimum time between gearshifts" - ' - '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, 186) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(429, 99) - Me.GroupBox2.TabIndex = 4 - 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.Location = New System.Drawing.Point(459, 377) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(414, 188) - Me.GroupBox3.TabIndex = 5 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Torque Converter" - ' - 'PnTC - ' - Me.PnTC.Controls.Add(Me.Label26) - Me.PnTC.Controls.Add(Me.tbTCmaxSpeed) - Me.PnTC.Controls.Add(Me.Label27) - Me.PnTC.Controls.Add(Me.BtTCShiftFileBrowse) - Me.PnTC.Controls.Add(Me.Label17) - Me.PnTC.Controls.Add(Me.TBTCShiftPolygon) - Me.PnTC.Controls.Add(Me.LblTCShiftFile) - 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, 19) - Me.PnTC.Name = "PnTC" - Me.PnTC.Size = New System.Drawing.Size(402, 163) - Me.PnTC.TabIndex = 36 - ' - 'Label26 - ' - Me.Label26.AutoSize = True - Me.Label26.Location = New System.Drawing.Point(5, 77) - Me.Label26.Name = "Label26" - Me.Label26.Size = New System.Drawing.Size(64, 13) - Me.Label26.TabIndex = 38 - Me.Label26.Text = "Max. Speed" - ' - 'tbTCmaxSpeed - ' - Me.tbTCmaxSpeed.Location = New System.Drawing.Point(75, 71) - Me.tbTCmaxSpeed.Name = "tbTCmaxSpeed" - Me.tbTCmaxSpeed.Size = New System.Drawing.Size(67, 20) - Me.tbTCmaxSpeed.TabIndex = 40 - ' - 'Label27 - ' - Me.Label27.AutoSize = True - Me.Label27.Location = New System.Drawing.Point(148, 74) - Me.Label27.Name = "Label27" - Me.Label27.Size = New System.Drawing.Size(30, 13) - Me.Label27.TabIndex = 39 - Me.Label27.Text = "[rpm]" - ' - 'BtTCShiftFileBrowse - ' - Me.BtTCShiftFileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.BtTCShiftFileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.BtTCShiftFileBrowse.Location = New System.Drawing.Point(353, 126) - Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse" - Me.BtTCShiftFileBrowse.Size = New System.Drawing.Size(24, 24) - Me.BtTCShiftFileBrowse.TabIndex = 5 - Me.BtTCShiftFileBrowse.TabStop = False - Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True - ' - '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" - ' - 'TBTCShiftPolygon - ' - Me.TBTCShiftPolygon.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TBTCShiftPolygon.Location = New System.Drawing.Point(4, 126) - Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon" - Me.TBTCShiftPolygon.Size = New System.Drawing.Size(343, 20) - Me.TBTCShiftPolygon.TabIndex = 37 - ' - 'LblTCShiftFile - ' - Me.LblTCShiftFile.AutoSize = True - Me.LblTCShiftFile.Location = New System.Drawing.Point(5, 100) - Me.LblTCShiftFile.Name = "LblTCShiftFile" - Me.LblTCShiftFile.Size = New System.Drawing.Size(172, 13) - Me.LblTCShiftFile.TabIndex = 5 - Me.LblTCShiftFile.Text = "Torque converter shift polygons file" - ' - '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" - ' - '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(197, 50) - Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(77, 13) - Me.Label15.TabIndex = 0 - Me.Label15.Text = "Reference rpm" - ' - 'TbTCinertia - ' - Me.TbTCinertia.Location = New System.Drawing.Point(75, 45) - Me.TbTCinertia.Name = "TbTCinertia" - Me.TbTCinertia.Size = New System.Drawing.Size(67, 20) - Me.TbTCinertia.TabIndex = 3 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(148, 48) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(36, 13) - Me.Label1.TabIndex = 2 - Me.Label1.Text = "[kgm²]" - ' - '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(353, 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.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.BtTCfileBrowse.Location = New System.Drawing.Point(348, 19) - Me.BtTCfileBrowse.Name = "BtTCfileBrowse" - Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24) - Me.BtTCfileBrowse.TabIndex = 1 - Me.BtTCfileBrowse.TabStop = False - 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(4, 21) - Me.TbTCfile.Name = "TbTCfile" - Me.TbTCfile.Size = New System.Drawing.Size(343, 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.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.BtTCfileOpen.Location = New System.Drawing.Point(372, 19) - Me.BtTCfileOpen.Name = "BtTCfileOpen" - Me.BtTCfileOpen.Size = New System.Drawing.Size(24, 24) - 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(280, 47) - Me.TbTCrefrpm.Name = "TbTCrefrpm" - Me.TbTCrefrpm.Size = New System.Drawing.Size(67, 20) - Me.TbTCrefrpm.TabIndex = 4 - ' - '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.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon - Me.BtAddGear.Location = New System.Drawing.Point(6, 202) - Me.BtAddGear.Name = "BtAddGear" - Me.BtAddGear.Size = New System.Drawing.Size(24, 24) - Me.BtAddGear.TabIndex = 1 - 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, 232) - Me.GroupBox4.TabIndex = 2 - Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "Gears" - ' - 'Label32 - ' - Me.Label32.AutoSize = True - Me.Label32.Location = New System.Drawing.Point(331, 202) - Me.Label32.Name = "Label32" - Me.Label32.Size = New System.Drawing.Size(106, 13) - Me.Label32.TabIndex = 3 - Me.Label32.Text = "(Double-Click to Edit)" - ' - '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(459, 342) - Me.PnInertiaTI.Name = "PnInertiaTI" - Me.PnInertiaTI.Size = New System.Drawing.Size(398, 30) - Me.PnInertiaTI.TabIndex = 4 - ' - 'PicBox - ' - Me.PicBox.BackColor = System.Drawing.Color.LightGray - Me.PicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.PicBox.Location = New System.Drawing.Point(459, 28) - Me.PicBox.Name = "PicBox" - Me.PicBox.Size = New System.Drawing.Size(406, 308) - Me.PicBox.TabIndex = 48 - Me.PicBox.TabStop = False - ' - 'GroupBox5 - ' - Me.GroupBox5.Controls.Add(Me.Panel1) - Me.GroupBox5.Location = New System.Drawing.Point(459, 572) - Me.GroupBox5.Name = "GroupBox5" - Me.GroupBox5.Size = New System.Drawing.Size(414, 76) - Me.GroupBox5.TabIndex = 49 - Me.GroupBox5.TabStop = False - Me.GroupBox5.Text = "Power shift losses" - ' - 'Panel1 - ' - Me.Panel1.Controls.Add(Me.Label29) - Me.Panel1.Controls.Add(Me.tbATInertiaFactor) - Me.Panel1.Controls.Add(Me.lbATInertiaFactor) - Me.Panel1.Controls.Add(Me.Label28) - Me.Panel1.Controls.Add(Me.tbATShiftTime) - Me.Panel1.Controls.Add(Me.lbAtShiftTime) - Me.Panel1.Location = New System.Drawing.Point(6, 19) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(402, 38) - Me.Panel1.TabIndex = 0 - ' - 'lbAtShiftTime - ' - Me.lbAtShiftTime.AutoSize = True - Me.lbAtShiftTime.Location = New System.Drawing.Point(8, 4) - Me.lbAtShiftTime.Name = "lbAtShiftTime" - Me.lbAtShiftTime.Size = New System.Drawing.Size(50, 13) - Me.lbAtShiftTime.TabIndex = 0 - Me.lbAtShiftTime.Text = "Shift time" - ' - 'tbATShiftTime - ' - Me.tbATShiftTime.Location = New System.Drawing.Point(75, 1) - Me.tbATShiftTime.Name = "tbATShiftTime" - Me.tbATShiftTime.Size = New System.Drawing.Size(67, 20) - Me.tbATShiftTime.TabIndex = 4 - ' - 'Label28 - ' - Me.Label28.AutoSize = True - Me.Label28.Location = New System.Drawing.Point(148, 4) - Me.Label28.Name = "Label28" - Me.Label28.Size = New System.Drawing.Size(18, 13) - Me.Label28.TabIndex = 41 - Me.Label28.Text = "[s]" - ' - 'Label29 - ' - Me.Label29.AutoSize = True - Me.Label29.Location = New System.Drawing.Point(353, 4) - Me.Label29.Name = "Label29" - Me.Label29.Size = New System.Drawing.Size(16, 13) - Me.Label29.TabIndex = 44 - Me.Label29.Text = "[-]" - ' - 'tbATInertiaFactor - ' - Me.tbATInertiaFactor.Location = New System.Drawing.Point(280, 1) - Me.tbATInertiaFactor.Name = "tbATInertiaFactor" - Me.tbATInertiaFactor.Size = New System.Drawing.Size(67, 20) - Me.tbATInertiaFactor.TabIndex = 43 - ' - 'lbATInertiaFactor - ' - Me.lbATInertiaFactor.AutoSize = True - Me.lbATInertiaFactor.Location = New System.Drawing.Point(213, 4) - Me.lbATInertiaFactor.Name = "lbATInertiaFactor" - Me.lbATInertiaFactor.Size = New System.Drawing.Size(66, 13) - Me.lbATInertiaFactor.TabIndex = 42 - Me.lbATInertiaFactor.Text = "Inertia factor" - ' - 'GearboxForm - ' - Me.AcceptButton = Me.ButOK - Me.CancelButton = Me.ButCancel - Me.ClientSize = New System.Drawing.Size(877, 702) - Me.Controls.Add(Me.GroupBox5) - 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 = "GearboxForm" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen - 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.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - Me.PnTorqRes.ResumeLayout(False) - Me.PnTorqRes.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.CmOpenFile.ResumeLayout(False) - Me.GroupBox3.ResumeLayout(False) - 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.GroupBox5.ResumeLayout(False) - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.ResumeLayout(False) - Me.PerformLayout() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GearboxForm)) + 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.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.ColumnHeader6 = 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.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.tbUpshiftMinAcceleration = New System.Windows.Forms.TextBox() + Me.tbUpshiftAfterDownshift = New System.Windows.Forms.TextBox() + Me.tbDownshiftAfterUpshift = New System.Windows.Forms.TextBox() + Me.Label24 = New System.Windows.Forms.Label() + Me.Label23 = New System.Windows.Forms.Label() + Me.Label22 = New System.Windows.Forms.Label() + Me.Label21 = New System.Windows.Forms.Label() + Me.Label20 = New System.Windows.Forms.Label() + Me.Label19 = New System.Windows.Forms.Label() + Me.PnTorqRes = New System.Windows.Forms.Panel() + Me.Label25 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.TbTqResv = New System.Windows.Forms.TextBox() + Me.TbMinTimeBetweenShifts = New System.Windows.Forms.TextBox() + Me.Label12 = New System.Windows.Forms.Label() + Me.Label13 = New System.Windows.Forms.Label() + 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.gbTC = New System.Windows.Forms.GroupBox() + Me.Label26 = New System.Windows.Forms.Label() + Me.TBTCShiftPolygon = New System.Windows.Forms.TextBox() + Me.tbTCmaxSpeed = New System.Windows.Forms.TextBox() + Me.TbTCrefrpm = New System.Windows.Forms.TextBox() + Me.BtTCfileOpen = New System.Windows.Forms.Button() + Me.TbTCfile = New System.Windows.Forms.TextBox() + Me.Label27 = New System.Windows.Forms.Label() + Me.BtTCfileBrowse = New System.Windows.Forms.Button() + Me.Label14 = New System.Windows.Forms.Label() + Me.BtTCShiftFileBrowse = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.TbTCinertia = New System.Windows.Forms.TextBox() + Me.Label17 = New System.Windows.Forms.Label() + Me.Label15 = New System.Windows.Forms.Label() + Me.Label18 = New System.Windows.Forms.Label() + Me.LblTCShiftFile = New System.Windows.Forms.Label() + Me.tbTCLUpshiftMinAcceleration = New System.Windows.Forms.TextBox() + Me.Label30 = New System.Windows.Forms.Label() + Me.Label31 = New System.Windows.Forms.Label() + 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.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.Label29 = New System.Windows.Forms.Label() + Me.lbAtShiftTime = New System.Windows.Forms.Label() + Me.tbATShiftTime = New System.Windows.Forms.TextBox() + Me.tbATInertiaFactor = New System.Windows.Forms.TextBox() + Me.Label28 = New System.Windows.Forms.Label() + Me.lbATInertiaFactor = New System.Windows.Forms.Label() + Me.tbTCCUpshiftMinAcceleration = New System.Windows.Forms.TextBox() + Me.Label34 = New System.Windows.Forms.Label() + Me.Label35 = New System.Windows.Forms.Label() + Me.gbTCAccMin = New System.Windows.Forms.GroupBox() + Me.ToolStrip1.SuspendLayout() + Me.StatusStrip1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GrGearShift.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.PnTorqRes.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.CmOpenFile.SuspendLayout() + Me.gbTC.SuspendLayout() + Me.GroupBox4.SuspendLayout() + Me.PnInertiaTI.SuspendLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox5.SuspendLayout() + Me.gbTCAccMin.SuspendLayout() + 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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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.TUGraz.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, 674) + 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, 648) + Me.ButCancel.Name = "ButCancel" + Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.TabIndex = 7 + 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, 648) + Me.ButOK.Name = "ButOK" + Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.TabIndex = 6 + Me.ButOK.Text = "Save" + Me.ButOK.UseVisualStyleBackColor = True + ' + 'TbTracInt + ' + Me.TbTracInt.Location = New System.Drawing.Point(299, 3) + Me.TbTracInt.Name = "TbTracInt" + Me.TbTracInt.Size = New System.Drawing.Size(57, 20) + Me.TbTracInt.TabIndex = 1 + ' + 'LvGears + ' + Me.LvGears.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader5, Me.ColumnHeader6}) + 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 = 0 + Me.LvGears.TabStop = False + Me.LvGears.UseCompatibleStateImageBehavior = False + Me.LvGears.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Gear" + Me.ColumnHeader1.Width = 46 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Ratio" + Me.ColumnHeader2.Width = 50 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Loss Map or Efficiency" + Me.ColumnHeader3.Width = 128 + ' + 'ColumnHeader5 + ' + Me.ColumnHeader5.Text = "Shift Polygons" + Me.ColumnHeader5.Width = 94 + ' + 'ColumnHeader6 + ' + Me.ColumnHeader6.Text = "Max Torque" + Me.ColumnHeader6.Width = 95 + ' + 'TBI_getr + ' + Me.TBI_getr.Location = New System.Drawing.Point(78, 3) + Me.TBI_getr.Name = "TBI_getr" + Me.TBI_getr.Size = New System.Drawing.Size(57, 20) + Me.TBI_getr.TabIndex = 0 + ' + 'Label49 + ' + Me.Label49.AutoSize = True + Me.Label49.Location = New System.Drawing.Point(362, 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(141, 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(191, 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(6, 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.TUGraz.VECTO.My.Resources.Resources.VECTO_GBX + Me.PictureBox1.Location = New System.Drawing.Point(0, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(453, 40) + Me.PictureBox1.TabIndex = 43 + Me.PictureBox1.TabStop = False + ' + 'BtRemGear + ' + Me.BtRemGear.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon + Me.BtRemGear.Location = New System.Drawing.Point(30, 202) + Me.BtRemGear.Name = "BtRemGear" + Me.BtRemGear.Size = New System.Drawing.Size(24, 24) + Me.BtRemGear.TabIndex = 2 + Me.BtRemGear.UseVisualStyleBackColor = True + ' + 'GrGearShift + ' + Me.GrGearShift.Controls.Add(Me.GroupBox1) + Me.GrGearShift.Controls.Add(Me.PnTorqRes) + Me.GrGearShift.Controls.Add(Me.TbMinTimeBetweenShifts) + Me.GrGearShift.Controls.Add(Me.Label12) + Me.GrGearShift.Controls.Add(Me.Label13) + 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, 291) + Me.GrGearShift.TabIndex = 3 + Me.GrGearShift.TabStop = False + Me.GrGearShift.Text = "Gear shift parameters" + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.tbUpshiftMinAcceleration) + Me.GroupBox1.Controls.Add(Me.tbUpshiftAfterDownshift) + Me.GroupBox1.Controls.Add(Me.tbDownshiftAfterUpshift) + Me.GroupBox1.Controls.Add(Me.Label24) + Me.GroupBox1.Controls.Add(Me.Label23) + Me.GroupBox1.Controls.Add(Me.Label22) + Me.GroupBox1.Controls.Add(Me.Label21) + Me.GroupBox1.Controls.Add(Me.Label20) + Me.GroupBox1.Controls.Add(Me.Label19) + Me.GroupBox1.Location = New System.Drawing.Point(6, 82) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(429, 100) + Me.GroupBox1.TabIndex = 10 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Shift Strategy Parameters" + ' + 'tbUpshiftMinAcceleration + ' + Me.tbUpshiftMinAcceleration.Location = New System.Drawing.Point(209, 71) + Me.tbUpshiftMinAcceleration.Name = "tbUpshiftMinAcceleration" + Me.tbUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20) + Me.tbUpshiftMinAcceleration.TabIndex = 8 + ' + 'tbUpshiftAfterDownshift + ' + Me.tbUpshiftAfterDownshift.Location = New System.Drawing.Point(209, 45) + Me.tbUpshiftAfterDownshift.Name = "tbUpshiftAfterDownshift" + Me.tbUpshiftAfterDownshift.Size = New System.Drawing.Size(57, 20) + Me.tbUpshiftAfterDownshift.TabIndex = 7 + ' + 'tbDownshiftAfterUpshift + ' + Me.tbDownshiftAfterUpshift.Location = New System.Drawing.Point(209, 20) + Me.tbDownshiftAfterUpshift.Name = "tbDownshiftAfterUpshift" + Me.tbDownshiftAfterUpshift.Size = New System.Drawing.Size(57, 20) + Me.tbDownshiftAfterUpshift.TabIndex = 6 + ' + 'Label24 + ' + Me.Label24.AutoSize = True + Me.Label24.Location = New System.Drawing.Point(275, 74) + Me.Label24.Name = "Label24" + Me.Label24.Size = New System.Drawing.Size(34, 13) + Me.Label24.TabIndex = 5 + Me.Label24.Text = "[m/s²]" + ' + 'Label23 + ' + Me.Label23.AutoSize = True + Me.Label23.Location = New System.Drawing.Point(275, 48) + Me.Label23.Name = "Label23" + Me.Label23.Size = New System.Drawing.Size(18, 13) + Me.Label23.TabIndex = 4 + Me.Label23.Text = "[s]" + ' + 'Label22 + ' + Me.Label22.AutoSize = True + Me.Label22.Location = New System.Drawing.Point(275, 25) + Me.Label22.Name = "Label22" + Me.Label22.Size = New System.Drawing.Size(18, 13) + Me.Label22.TabIndex = 3 + Me.Label22.Text = "[s]" + ' + 'Label21 + ' + Me.Label21.AutoSize = True + Me.Label21.Location = New System.Drawing.Point(20, 74) + Me.Label21.Name = "Label21" + Me.Label21.Size = New System.Drawing.Size(146, 13) + Me.Label21.TabIndex = 2 + Me.Label21.Text = "Min. acceleration after upshift" + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Location = New System.Drawing.Point(20, 48) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(137, 13) + Me.Label20.TabIndex = 1 + Me.Label20.Text = "Upshift afer downshift delay" + ' + 'Label19 + ' + Me.Label19.AutoSize = True + Me.Label19.Location = New System.Drawing.Point(20, 25) + Me.Label19.Name = "Label19" + Me.Label19.Size = New System.Drawing.Size(137, 13) + Me.Label19.TabIndex = 0 + Me.Label19.Text = "Downshift afer upshift delay" + ' + 'PnTorqRes + ' + Me.PnTorqRes.Controls.Add(Me.Label25) + 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(9, 20) + Me.PnTorqRes.Name = "PnTorqRes" + Me.PnTorqRes.Size = New System.Drawing.Size(426, 32) + Me.PnTorqRes.TabIndex = 2 + ' + 'Label25 + ' + Me.Label25.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label25.AutoSize = True + Me.Label25.Location = New System.Drawing.Point(294, 9) + Me.Label25.Name = "Label25" + Me.Label25.Size = New System.Drawing.Size(129, 13) + Me.Label25.TabIndex = 1 + Me.Label25.Text = "(Early shift-up, Skip gears)" + ' + '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(18, 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(272, 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(206, 6) + Me.TbTqResv.Name = "TbTqResv" + Me.TbTqResv.Size = New System.Drawing.Size(57, 20) + Me.TbTqResv.TabIndex = 0 + ' + 'TbMinTimeBetweenShifts + ' + Me.TbMinTimeBetweenShifts.Location = New System.Drawing.Point(215, 52) + Me.TbMinTimeBetweenShifts.Name = "TbMinTimeBetweenShifts" + Me.TbMinTimeBetweenShifts.Size = New System.Drawing.Size(57, 20) + Me.TbMinTimeBetweenShifts.TabIndex = 3 + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Location = New System.Drawing.Point(281, 55) + 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(27, 55) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(162, 13) + Me.Label13.TabIndex = 8 + Me.Label13.Text = "Minimum time between gearshifts" + ' + '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, 186) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(429, 99) + Me.GroupBox2.TabIndex = 4 + 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" + ' + 'gbTC + ' + Me.gbTC.Controls.Add(Me.Label26) + Me.gbTC.Controls.Add(Me.TBTCShiftPolygon) + Me.gbTC.Controls.Add(Me.tbTCmaxSpeed) + Me.gbTC.Controls.Add(Me.TbTCrefrpm) + Me.gbTC.Controls.Add(Me.BtTCfileOpen) + Me.gbTC.Controls.Add(Me.TbTCfile) + Me.gbTC.Controls.Add(Me.Label27) + Me.gbTC.Controls.Add(Me.BtTCfileBrowse) + Me.gbTC.Controls.Add(Me.Label14) + Me.gbTC.Controls.Add(Me.BtTCShiftFileBrowse) + Me.gbTC.Controls.Add(Me.Label1) + Me.gbTC.Controls.Add(Me.TbTCinertia) + Me.gbTC.Controls.Add(Me.Label17) + Me.gbTC.Controls.Add(Me.Label15) + Me.gbTC.Controls.Add(Me.Label18) + Me.gbTC.Controls.Add(Me.LblTCShiftFile) + Me.gbTC.Location = New System.Drawing.Point(459, 377) + Me.gbTC.Name = "gbTC" + Me.gbTC.Size = New System.Drawing.Size(414, 162) + Me.gbTC.TabIndex = 5 + Me.gbTC.TabStop = False + Me.gbTC.Text = "Torque Converter" + ' + 'Label26 + ' + Me.Label26.AutoSize = True + Me.Label26.Location = New System.Drawing.Point(6, 93) + Me.Label26.Name = "Label26" + Me.Label26.Size = New System.Drawing.Size(64, 13) + Me.Label26.TabIndex = 38 + Me.Label26.Text = "Max. Speed" + ' + 'TBTCShiftPolygon + ' + Me.TBTCShiftPolygon.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TBTCShiftPolygon.Location = New System.Drawing.Point(9, 134) + Me.TBTCShiftPolygon.Name = "TBTCShiftPolygon" + Me.TBTCShiftPolygon.Size = New System.Drawing.Size(349, 20) + Me.TBTCShiftPolygon.TabIndex = 37 + ' + 'tbTCmaxSpeed + ' + Me.tbTCmaxSpeed.Location = New System.Drawing.Point(80, 90) + Me.tbTCmaxSpeed.Name = "tbTCmaxSpeed" + Me.tbTCmaxSpeed.Size = New System.Drawing.Size(57, 20) + Me.tbTCmaxSpeed.TabIndex = 40 + ' + '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(301, 64) + Me.TbTCrefrpm.Name = "TbTCrefrpm" + Me.TbTCrefrpm.Size = New System.Drawing.Size(57, 20) + Me.TbTCrefrpm.TabIndex = 4 + ' + 'BtTCfileOpen + ' + Me.BtTCfileOpen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtTCfileOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small + Me.BtTCfileOpen.Location = New System.Drawing.Point(383, 35) + Me.BtTCfileOpen.Name = "BtTCfileOpen" + Me.BtTCfileOpen.Size = New System.Drawing.Size(24, 24) + Me.BtTCfileOpen.TabIndex = 2 + Me.BtTCfileOpen.TabStop = False + Me.BtTCfileOpen.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(9, 37) + Me.TbTCfile.Name = "TbTCfile" + Me.TbTCfile.Size = New System.Drawing.Size(349, 20) + Me.TbTCfile.TabIndex = 0 + ' + 'Label27 + ' + Me.Label27.AutoSize = True + Me.Label27.Location = New System.Drawing.Point(143, 93) + Me.Label27.Name = "Label27" + Me.Label27.Size = New System.Drawing.Size(30, 13) + Me.Label27.TabIndex = 39 + Me.Label27.Text = "[rpm]" + ' + 'BtTCfileBrowse + ' + Me.BtTCfileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtTCfileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon + Me.BtTCfileBrowse.Location = New System.Drawing.Point(359, 35) + Me.BtTCfileBrowse.Name = "BtTCfileBrowse" + Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24) + Me.BtTCfileBrowse.TabIndex = 1 + Me.BtTCfileBrowse.TabStop = False + Me.BtTCfileBrowse.UseVisualStyleBackColor = True + ' + '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(362, 67) + Me.Label14.Name = "Label14" + Me.Label14.Size = New System.Drawing.Size(40, 13) + Me.Label14.TabIndex = 0 + Me.Label14.Text = "[1/min]" + ' + 'BtTCShiftFileBrowse + ' + Me.BtTCShiftFileBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.BtTCShiftFileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon + Me.BtTCShiftFileBrowse.Location = New System.Drawing.Point(359, 132) + Me.BtTCShiftFileBrowse.Name = "BtTCShiftFileBrowse" + Me.BtTCShiftFileBrowse.Size = New System.Drawing.Size(24, 24) + Me.BtTCShiftFileBrowse.TabIndex = 5 + Me.BtTCShiftFileBrowse.TabStop = False + Me.BtTCShiftFileBrowse.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(143, 67) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(36, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "[kgm²]" + ' + 'TbTCinertia + ' + Me.TbTCinertia.Location = New System.Drawing.Point(80, 64) + Me.TbTCinertia.Name = "TbTCinertia" + Me.TbTCinertia.Size = New System.Drawing.Size(57, 20) + Me.TbTCinertia.TabIndex = 3 + ' + 'Label17 + ' + Me.Label17.AutoSize = True + Me.Label17.Location = New System.Drawing.Point(6, 21) + Me.Label17.Name = "Label17" + Me.Label17.Size = New System.Drawing.Size(209, 13) + Me.Label17.TabIndex = 0 + Me.Label17.Text = "Torque converter characteristics file (.vtcc)" + ' + '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(218, 67) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(77, 13) + Me.Label15.TabIndex = 0 + Me.Label15.Text = "Reference rpm" + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.Location = New System.Drawing.Point(6, 67) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(36, 13) + Me.Label18.TabIndex = 2 + Me.Label18.Text = "Inertia" + ' + 'LblTCShiftFile + ' + Me.LblTCShiftFile.AutoSize = True + Me.LblTCShiftFile.Location = New System.Drawing.Point(6, 119) + Me.LblTCShiftFile.Name = "LblTCShiftFile" + Me.LblTCShiftFile.Size = New System.Drawing.Size(207, 13) + Me.LblTCShiftFile.TabIndex = 5 + Me.LblTCShiftFile.Text = "Torque converter shift polygons file (.vgbs)" + ' + 'tbTCLUpshiftMinAcceleration + ' + Me.tbTCLUpshiftMinAcceleration.Location = New System.Drawing.Point(78, 19) + Me.tbTCLUpshiftMinAcceleration.Name = "tbTCLUpshiftMinAcceleration" + Me.tbTCLUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20) + Me.tbTCLUpshiftMinAcceleration.TabIndex = 43 + ' + 'Label30 + ' + Me.Label30.AutoSize = True + Me.Label30.Location = New System.Drawing.Point(141, 22) + Me.Label30.Name = "Label30" + Me.Label30.Size = New System.Drawing.Size(34, 13) + Me.Label30.TabIndex = 42 + Me.Label30.Text = "[m/s²]" + ' + 'Label31 + ' + Me.Label31.AutoSize = True + Me.Label31.Location = New System.Drawing.Point(6, 22) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(69, 13) + Me.Label31.TabIndex = 41 + Me.Label31.Text = "Acc. for C->L" + ' + '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.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon + Me.BtAddGear.Location = New System.Drawing.Point(6, 202) + Me.BtAddGear.Name = "BtAddGear" + Me.BtAddGear.Size = New System.Drawing.Size(24, 24) + Me.BtAddGear.TabIndex = 1 + 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, 232) + Me.GroupBox4.TabIndex = 2 + Me.GroupBox4.TabStop = False + Me.GroupBox4.Text = "Gears" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Location = New System.Drawing.Point(331, 202) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(106, 13) + Me.Label32.TabIndex = 3 + Me.Label32.Text = "(Double-Click to Edit)" + ' + '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(459, 344) + Me.PnInertiaTI.Name = "PnInertiaTI" + Me.PnInertiaTI.Size = New System.Drawing.Size(411, 30) + Me.PnInertiaTI.TabIndex = 4 + ' + 'PicBox + ' + Me.PicBox.BackColor = System.Drawing.Color.LightGray + Me.PicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.PicBox.Location = New System.Drawing.Point(459, 28) + Me.PicBox.Name = "PicBox" + Me.PicBox.Size = New System.Drawing.Size(414, 308) + Me.PicBox.TabIndex = 48 + Me.PicBox.TabStop = False + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.Label29) + Me.GroupBox5.Controls.Add(Me.lbAtShiftTime) + Me.GroupBox5.Controls.Add(Me.tbATShiftTime) + Me.GroupBox5.Controls.Add(Me.tbATInertiaFactor) + Me.GroupBox5.Controls.Add(Me.Label28) + Me.GroupBox5.Controls.Add(Me.lbATInertiaFactor) + Me.GroupBox5.Location = New System.Drawing.Point(459, 598) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(414, 47) + Me.GroupBox5.TabIndex = 49 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "Power shift losses" + ' + 'Label29 + ' + Me.Label29.AutoSize = True + Me.Label29.Location = New System.Drawing.Point(362, 22) + Me.Label29.Name = "Label29" + Me.Label29.Size = New System.Drawing.Size(16, 13) + Me.Label29.TabIndex = 44 + Me.Label29.Text = "[-]" + ' + 'lbAtShiftTime + ' + Me.lbAtShiftTime.AutoSize = True + Me.lbAtShiftTime.Location = New System.Drawing.Point(6, 22) + Me.lbAtShiftTime.Name = "lbAtShiftTime" + Me.lbAtShiftTime.Size = New System.Drawing.Size(50, 13) + Me.lbAtShiftTime.TabIndex = 0 + Me.lbAtShiftTime.Text = "Shift time" + ' + 'tbATShiftTime + ' + Me.tbATShiftTime.Location = New System.Drawing.Point(78, 19) + Me.tbATShiftTime.Name = "tbATShiftTime" + Me.tbATShiftTime.Size = New System.Drawing.Size(57, 20) + Me.tbATShiftTime.TabIndex = 4 + ' + 'tbATInertiaFactor + ' + Me.tbATInertiaFactor.Location = New System.Drawing.Point(299, 19) + Me.tbATInertiaFactor.Name = "tbATInertiaFactor" + Me.tbATInertiaFactor.Size = New System.Drawing.Size(57, 20) + Me.tbATInertiaFactor.TabIndex = 43 + ' + 'Label28 + ' + Me.Label28.AutoSize = True + Me.Label28.Location = New System.Drawing.Point(141, 22) + Me.Label28.Name = "Label28" + Me.Label28.Size = New System.Drawing.Size(18, 13) + Me.Label28.TabIndex = 41 + Me.Label28.Text = "[s]" + ' + 'lbATInertiaFactor + ' + Me.lbATInertiaFactor.AutoSize = True + Me.lbATInertiaFactor.Location = New System.Drawing.Point(227, 22) + Me.lbATInertiaFactor.Name = "lbATInertiaFactor" + Me.lbATInertiaFactor.Size = New System.Drawing.Size(66, 13) + Me.lbATInertiaFactor.TabIndex = 42 + Me.lbATInertiaFactor.Text = "Inertia factor" + ' + 'tbTCCUpshiftMinAcceleration + ' + Me.tbTCCUpshiftMinAcceleration.Location = New System.Drawing.Point(299, 19) + Me.tbTCCUpshiftMinAcceleration.Name = "tbTCCUpshiftMinAcceleration" + Me.tbTCCUpshiftMinAcceleration.Size = New System.Drawing.Size(57, 20) + Me.tbTCCUpshiftMinAcceleration.TabIndex = 46 + ' + 'Label34 + ' + Me.Label34.AutoSize = True + Me.Label34.Location = New System.Drawing.Point(362, 22) + Me.Label34.Name = "Label34" + Me.Label34.Size = New System.Drawing.Size(34, 13) + Me.Label34.TabIndex = 45 + Me.Label34.Text = "[m/s²]" + ' + 'Label35 + ' + Me.Label35.AutoSize = True + Me.Label35.Location = New System.Drawing.Point(211, 22) + Me.Label35.Name = "Label35" + Me.Label35.Size = New System.Drawing.Size(82, 13) + Me.Label35.TabIndex = 44 + Me.Label35.Text = "Acc. for 1C->2C" + ' + 'gbTCAccMin + ' + Me.gbTCAccMin.Controls.Add(Me.tbTCLUpshiftMinAcceleration) + Me.gbTCAccMin.Controls.Add(Me.tbTCCUpshiftMinAcceleration) + Me.gbTCAccMin.Controls.Add(Me.Label34) + Me.gbTCAccMin.Controls.Add(Me.Label31) + Me.gbTCAccMin.Controls.Add(Me.Label35) + Me.gbTCAccMin.Controls.Add(Me.Label30) + Me.gbTCAccMin.Location = New System.Drawing.Point(459, 545) + Me.gbTCAccMin.Name = "gbTCAccMin" + Me.gbTCAccMin.Size = New System.Drawing.Size(414, 47) + Me.gbTCAccMin.TabIndex = 50 + Me.gbTCAccMin.TabStop = False + Me.gbTCAccMin.Text = "Torque Converter: Min. acceleration after upshift" + ' + 'GearboxForm + ' + Me.AcceptButton = Me.ButOK + Me.CancelButton = Me.ButCancel + Me.ClientSize = New System.Drawing.Size(877, 696) + Me.Controls.Add(Me.gbTCAccMin) + Me.Controls.Add(Me.GroupBox5) + 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.gbTC) + 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 = "GearboxForm" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + 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.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.PnTorqRes.ResumeLayout(False) + Me.PnTorqRes.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.CmOpenFile.ResumeLayout(False) + Me.gbTC.ResumeLayout(False) + Me.gbTC.PerformLayout() + Me.GroupBox4.ResumeLayout(False) + Me.GroupBox4.PerformLayout() + Me.PnInertiaTI.ResumeLayout(False) + Me.PnInertiaTI.PerformLayout() + CType(Me.PicBox, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox5.ResumeLayout(False) + Me.GroupBox5.PerformLayout() + Me.gbTCAccMin.ResumeLayout(False) + Me.gbTCAccMin.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub - Friend WithEvents ToolStrip1 As ToolStrip - Friend WithEvents ToolStripBtNew As ToolStripButton - Friend WithEvents ToolStripBtOpen As ToolStripButton - Friend WithEvents ToolStripBtSave As ToolStripButton - Friend WithEvents ToolStripBtSaveAs As ToolStripButton - Friend WithEvents ToolStripSeparator3 As ToolStripSeparator - Friend WithEvents ToolStripBtSendTo As ToolStripButton - Friend WithEvents StatusStrip1 As StatusStrip - Friend WithEvents LbStatus As ToolStripStatusLabel - Friend WithEvents ButCancel As Button - Friend WithEvents ButOK As Button - Friend WithEvents BtRemGear As Button - Friend WithEvents TbTracInt As TextBox - Friend WithEvents LvGears As ListView - Friend WithEvents ColumnHeader1 As ColumnHeader - Friend WithEvents ColumnHeader2 As ColumnHeader - Friend WithEvents ColumnHeader3 As ColumnHeader - Friend WithEvents TBI_getr As TextBox - Friend WithEvents Label49 As Label - Friend WithEvents Label33 As Label - Friend WithEvents Label48 As Label - Friend WithEvents Label6 As Label - Friend WithEvents Label3 As Label - Friend WithEvents TbName As TextBox - Friend WithEvents PictureBox1 As PictureBox - Friend WithEvents ToolStripSeparator1 As ToolStripSeparator - Friend WithEvents ToolStripButton1 As ToolStripButton - Friend WithEvents GrGearShift As GroupBox - Friend WithEvents Label2 As Label - Friend WithEvents TbTqResvStart As TextBox - Friend WithEvents TbTqResv As TextBox - Friend WithEvents Label7 As Label - Friend WithEvents Label5 As Label - Friend WithEvents Label4 As Label - Friend WithEvents GroupBox2 As GroupBox - Friend WithEvents TbStartAcc As TextBox - Friend WithEvents Label11 As Label - Friend WithEvents TbStartSpeed As TextBox - Friend WithEvents Label9 As Label - Friend WithEvents Label10 As Label - Friend WithEvents Label8 As Label - Friend WithEvents TbMinTimeBetweenShifts As TextBox + End Sub + Friend WithEvents ToolStrip1 As ToolStrip + Friend WithEvents ToolStripBtNew As ToolStripButton + Friend WithEvents ToolStripBtOpen As ToolStripButton + Friend WithEvents ToolStripBtSave As ToolStripButton + Friend WithEvents ToolStripBtSaveAs As ToolStripButton + Friend WithEvents ToolStripSeparator3 As ToolStripSeparator + Friend WithEvents ToolStripBtSendTo As ToolStripButton + Friend WithEvents StatusStrip1 As StatusStrip + Friend WithEvents LbStatus As ToolStripStatusLabel + Friend WithEvents ButCancel As Button + Friend WithEvents ButOK As Button + Friend WithEvents BtRemGear As Button + Friend WithEvents TbTracInt As TextBox + Friend WithEvents LvGears As ListView + Friend WithEvents ColumnHeader1 As ColumnHeader + Friend WithEvents ColumnHeader2 As ColumnHeader + Friend WithEvents ColumnHeader3 As ColumnHeader + Friend WithEvents TBI_getr As TextBox + Friend WithEvents Label49 As Label + Friend WithEvents Label33 As Label + Friend WithEvents Label48 As Label + Friend WithEvents Label6 As Label + Friend WithEvents Label3 As Label + Friend WithEvents TbName As TextBox + Friend WithEvents PictureBox1 As PictureBox + Friend WithEvents ToolStripSeparator1 As ToolStripSeparator + Friend WithEvents ToolStripButton1 As ToolStripButton + Friend WithEvents GrGearShift As GroupBox + Friend WithEvents Label2 As Label + Friend WithEvents TbTqResvStart As TextBox + Friend WithEvents TbTqResv As TextBox + Friend WithEvents Label7 As Label + Friend WithEvents Label5 As Label + Friend WithEvents Label4 As Label + Friend WithEvents GroupBox2 As GroupBox + Friend WithEvents TbStartAcc As TextBox + Friend WithEvents Label11 As Label + Friend WithEvents TbStartSpeed As TextBox + Friend WithEvents Label9 As Label + Friend WithEvents Label10 As Label + Friend WithEvents Label8 As Label + Friend WithEvents TbMinTimeBetweenShifts As TextBox Friend WithEvents Label12 As Label Friend WithEvents Label13 As Label Friend WithEvents CmOpenFile As ContextMenuStrip Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem - Friend WithEvents GroupBox3 As GroupBox + Friend WithEvents gbTC As GroupBox Friend WithEvents TbTCfile As TextBox Friend WithEvents BtTCfileBrowse As Button Friend WithEvents BtTCfileOpen As Button @@ -1119,7 +1173,6 @@ Partial Class GearboxForm Friend WithEvents Label16 As Label Friend WithEvents CbGStype As ComboBox Friend WithEvents Label17 As Label - Friend WithEvents PnTC As Panel Friend WithEvents PnTorqRes As Panel Friend WithEvents BtAddGear As Button Friend WithEvents ColumnHeader4 As ColumnHeader @@ -1148,13 +1201,19 @@ Partial Class GearboxForm Friend WithEvents Label25 As System.Windows.Forms.Label Friend WithEvents Label26 As System.Windows.Forms.Label Friend WithEvents tbTCmaxSpeed As System.Windows.Forms.TextBox - Friend WithEvents Label27 As System.Windows.Forms.Label - Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox - Friend WithEvents Panel1 As System.Windows.Forms.Panel - Friend WithEvents Label29 As System.Windows.Forms.Label - Friend WithEvents tbATInertiaFactor As System.Windows.Forms.TextBox - Friend WithEvents lbATInertiaFactor As System.Windows.Forms.Label - Friend WithEvents Label28 As System.Windows.Forms.Label - Friend WithEvents tbATShiftTime As System.Windows.Forms.TextBox - Friend WithEvents lbAtShiftTime As System.Windows.Forms.Label + Friend WithEvents Label27 As System.Windows.Forms.Label + Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox + Friend WithEvents Label29 As System.Windows.Forms.Label + Friend WithEvents tbATInertiaFactor As System.Windows.Forms.TextBox + Friend WithEvents lbATInertiaFactor As System.Windows.Forms.Label + Friend WithEvents Label28 As System.Windows.Forms.Label + Friend WithEvents tbATShiftTime As System.Windows.Forms.TextBox + Friend WithEvents lbAtShiftTime As System.Windows.Forms.Label + Friend WithEvents tbTCLUpshiftMinAcceleration As System.Windows.Forms.TextBox + Friend WithEvents Label30 As System.Windows.Forms.Label + Friend WithEvents Label31 As System.Windows.Forms.Label + Friend WithEvents tbTCCUpshiftMinAcceleration As System.Windows.Forms.TextBox + Friend WithEvents Label34 As System.Windows.Forms.Label + Friend WithEvents Label35 As System.Windows.Forms.Label + Friend WithEvents gbTCAccMin As System.Windows.Forms.GroupBox End Class diff --git a/VECTO/GUI/GearboxForm.vb b/VECTO/GUI/GearboxForm.vb index 29c101d3bb..924fd59869 100644 --- a/VECTO/GUI/GearboxForm.vb +++ b/VECTO/GUI/GearboxForm.vb @@ -70,12 +70,12 @@ Public Class GearboxForm If Cfg.DeclMode Then CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _ - .Cast(Of GearboxType)() _ + .Cast (Of GearboxType)() _ .Where(Function(type) type.ManualTransmission()) _ .Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList() Else CbGStype.DataSource = [Enum].GetValues(GetType(GearboxType)) _ - .Cast(Of GearboxType) _ + .Cast (Of GearboxType) _ .Where(Function(type) type.AutomaticTransmission() OrElse type.ManualTransmission()) _ .Select(Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList() End If @@ -98,392 +98,373 @@ Public Class GearboxForm gbxType = CType(CbGStype.SelectedValue, GearboxType) 'CType(Me.CbGStype.SelectedIndex, tGearbox) TbTracInt.Text = gbxType.TractionInterruption().ToGUIFormat() - TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat() 'cDeclaration.MinTimeBetweenGearshift(GStype) + TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat() + 'cDeclaration.MinTimeBetweenGearshift(GStype) - TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve * 100).ToGUIFormat() ' cDeclaration.TqResv - TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart * 100).ToGUIFormat() 'cDeclaration.TqResvStart - TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() 'cDeclaration.StartSpeed - TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat() ' cDeclaration.StartAcc + TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve*100).ToGUIFormat() ' cDeclaration.TqResv + TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart*100).ToGUIFormat() 'cDeclaration.TqResvStart + TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() 'cDeclaration.StartSpeed + TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat() ' cDeclaration.StartAcc - tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat() - tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat() - tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() + tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat() + tbTCCUpshiftMinAcceleration.Text = "" + tbTCLUpshiftMinAcceleration.Text = "" - 'ChTCon.Checked = GStype.AutomaticTransmission() - For Each lv0 In LvGears.Items - lv0.SubItems(GearboxTbl.ShiftPolygons).Text = "" - Next - End Sub + tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat() + tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() + + 'ChTCon.Checked = GStype.AutomaticTransmission() + For Each lv0 In LvGears.Items + lv0.SubItems(GearboxTbl.ShiftPolygons).Text = "" + Next + End Sub #Region "Toolbar" - Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click - NewGbx() - End Sub - - Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click - If GearboxFileBrowser.OpenDialog(_gbxFile) Then - Try - OpenGbx(GearboxFileBrowser.Files(0)) - Catch ex As Exception - MsgBox("Failed to open Gearbox File: " + ex.Message) - End Try - End If - End Sub - - Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click - SaveOrSaveAs(False) - End Sub - - Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click - SaveOrSaveAs(True) - End Sub - - Private Sub ToolStripBtSendTo_Click(sender As Object, e As 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 VectoJobForm.Visible Then - JobDir = "" - VectoJobForm.Show() - VectoJobForm.VectoNew() - Else - VectoJobForm.WindowState = FormWindowState.Normal - End If - - VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(_gbxFile, JobDir) - End Sub - - 'Help - Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click - If File.Exists(MyAppPath & "User Manual\help.html") Then - Dim browserRegistryString As String = - My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString - Dim defaultBrowserPath As String = - Regex.Match(browserRegistryString, "(\"".*?\"")").Captures(0).ToString - Process.Start(defaultBrowserPath, - String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor")) - Else - MsgBox("User Manual not found!", MsgBoxStyle.Critical) - End If - End Sub + Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click + NewGbx() + End Sub + + Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click + If GearboxFileBrowser.OpenDialog(_gbxFile) Then + Try + OpenGbx(GearboxFileBrowser.Files(0)) + Catch ex As Exception + MsgBox("Failed to open Gearbox File: " + ex.Message) + End Try + End If + End Sub + + Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub + + Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub + + Private Sub ToolStripBtSendTo_Click(sender As Object, e As 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 VectoJobForm.Visible Then + JobDir = "" + VectoJobForm.Show() + VectoJobForm.VectoNew() + Else + VectoJobForm.WindowState = FormWindowState.Normal + End If + + VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(_gbxFile, JobDir) + End Sub + + 'Help + Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click + If File.Exists(MyAppPath & "User Manual\help.html") Then + Dim browserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim defaultBrowserPath As String = + Regex.Match(browserRegistryString, "(\"".*?\"")").Captures(0).ToString + Process.Start(defaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor")) + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub #End Region - 'New file - Private Sub NewGbx() - 'Dim lvi As ListViewItem - - If ChangeCheckCancel() Then Exit Sub - - 'CbGStype.SelectedIndex = 0 - - TbName.Text = "" - TbTracInt.Text = "" - TBI_getr.Text = "" - - LvGears.Items.Clear() - - LvGears.Items.Add(CreateListviewItem("Axle", 1, "1", "", "")) - - 'Me.ChSkipGears.Checked = False 'set by CbGStype.SelectedIndexChanged - 'Me.ChShiftInside.Checked = False 'set by CbGStype.SelectedIndexChanged - TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve * 100).ToGUIFormat() - TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat() - TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart * 100).ToGUIFormat() - TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() ' in m/s! - TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat() - - tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat() - tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat() - tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() + 'New file + Private Sub NewGbx() + 'Dim lvi As ListViewItem - 'ChTCon.Checked = False 'set by CbGStype.SelectedIndexChanged - TbTCfile.Text = "" - TbTCrefrpm.Text = "" - TbTCinertia.Text = "" + If ChangeCheckCancel() Then Exit Sub - DeclInit() - - _gbxFile = "" - Text = "GBX Editor" - LbStatus.Text = "" - - - _changed = False - UpdatePic() - End Sub - - 'Open file - Public Sub OpenGbx(file As String) - - If ChangeCheckCancel() Then Exit Sub - - Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(file), - IEngineeringInputDataProvider) - Dim gearbox As IGearboxEngineeringInputData = inputData.GearboxInputData - Dim axlegear As IAxleGearInputData = inputData.AxleGearInputData - - If Cfg.DeclMode <> gearbox.SavedInDeclarationMode Then - Select Case WrongMode() - Case 1 - Close() - MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked - MainForm.OpenVectoFile(file) - Case -1 - Exit Sub - End Select - End If - - Dim basePath As String = Path.GetDirectoryName(file) - TbName.Text = gearbox.ModelName - TbTracInt.Text = gearbox.TractionInterruption.ToGUIFormat() - TBI_getr.Text = gearbox.Inertia.ToGUIFormat() - - LvGears.Items.Clear() - - Dim lossmap As String = "" - Try - lossmap = If(axlegear.LossMap Is Nothing, axlegear.Efficiency.ToGUIFormat(), - GetRelativePath(axlegear.LossMap.Source, basePath)) - Catch ex As Exception - End Try - - LvGears.Items.Add(CreateListviewItem("Axle", axlegear.Ratio, lossmap, "", "")) - - For Each gear As ITransmissionInputData In gearbox.Gears - lossmap = "" - Try - lossmap = If(gear.LossMap Is Nothing, gear.Efficiency.ToGUIFormat(), GetRelativePath(gear.LossMap.Source, basePath)) - Catch ex As Exception - - End Try - LvGears.Items.Add(CreateListviewItem(gear.Gear.ToString("00"), gear.Ratio, - lossmap, - If(gear.ShiftPolygon Is Nothing, "", GetRelativePath(gear.ShiftPolygon.Source, basePath)), - If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.ToGUIFormat()))) - Next - - TbTqResv.Text = (gearbox.TorqueReserve * 100).ToGUIFormat() - TbMinTimeBetweenShifts.Text = gearbox.MinTimeBetweenGearshift.ToGUIFormat() - TbTqResvStart.Text = (gearbox.StartTorqueReserve * 100).ToGUIFormat() - TbStartSpeed.Text = gearbox.StartSpeed.ToGUIFormat() - TbStartAcc.Text = gearbox.StartAcceleration.ToGUIFormat() - - Dim torqueConverter As ITorqueConverterEngineeringInputData = gearbox.TorqueConverter - If torqueConverter Is Nothing OrElse gearbox.Type.ManualTransmission() Then - TbTCfile.Text = "" - TbTCrefrpm.Text = "" - TbTCinertia.Text = "" - TBTCShiftPolygon.Text = "" - Else - TbTCfile.Text = If(torqueConverter.TCData Is Nothing, "", GetRelativePath(torqueConverter.TCData.Source, basePath)) - TbTCrefrpm.Text = If(torqueConverter.ReferenceRPM Is Nothing, "", torqueConverter.ReferenceRPM.AsRPM.ToGUIFormat()) - TbTCinertia.Text = If(torqueConverter.Inertia Is Nothing, "", torqueConverter.Inertia.ToGUIFormat()) - TBTCShiftPolygon.Text = - If(torqueConverter.ShiftPolygon Is Nothing, "", GetRelativePath(torqueConverter.ShiftPolygon.Source, basePath)) - End If - - tbUpshiftMinAcceleration.Text = gearbox.UpshiftMinAcceleration.ToGUIFormat() - tbDownshiftAfterUpshift.Text = gearbox.DownshiftAferUpshiftDelay.ToGUIFormat() - tbUpshiftAfterDownshift.Text = gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() - - tbATInertiaFactor.Text = gearbox.PowerShiftInertiaFactor.ToGUIFormat() - tbATShiftTime.Text = gearbox.PowershiftShiftTime.ToGUIFormat() - - CbGStype.SelectedValue = gearbox.Type - - - DeclInit() - - - GearboxFileBrowser.UpdateHistory(file) - Text = GetFilenameWithoutPath(file, True) - LbStatus.Text = "" - _gbxFile = file - Activate() - - _changed = False - UpdatePic() - End Sub - - Private Function CreateListviewItem(gear As String, ratio As Double, getrMap As String, - shiftPolygon As String, maxTorque As String) As ListViewItem - Dim retVal As ListViewItem = New ListViewItem(gear) - 'retVal.SubItems.Add(tc) - retVal.SubItems.Add(ratio.ToGUIFormat()) - retVal.SubItems.Add(getrMap) - retVal.SubItems.Add(shiftPolygon) - retVal.SubItems.Add(maxTorque) - Return retVal - End Function - - 'Save or Save As function = true if file is saved - Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean - If _gbxFile = "" Or saveAs Then - If GearboxFileBrowser.SaveDialog(_gbxFile) Then - _gbxFile = GearboxFileBrowser.Files(0) - Else - Return False - End If - End If - Return SaveGbx(_gbxFile) - End Function - - 'Save file - Private Function SaveGbx(file As String) As Boolean - Dim gearbox As Gearbox - Dim i As Integer - - gearbox = New Gearbox - gearbox.FilePath = file - - gearbox.ModelName = TbName.Text - If Trim(gearbox.ModelName) = "" Then gearbox.ModelName = "Undefined" - - gearbox.TracIntrSi = TbTracInt.Text.ToDouble(0) - gearbox.GbxInertia = TBI_getr.Text.ToDouble(0) - - For i = 0 To LvGears.Items.Count - 1 - 'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0) - gearbox.GearRatios.Add(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text.ToDouble(0)) - gearbox.GearLossmaps.Add(New SubPath) - gearbox.GearLossMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text - gearbox.GearshiftFiles.Add(New SubPath) - gearbox.ShiftPolygonFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text - 'GBX0.FldFiles.Add(New cSubPath) - 'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text - gearbox.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text) - Next - - gearbox.TorqueResv = TbTqResv.Text.ToDouble(0) - gearbox.ShiftTime = TbMinTimeBetweenShifts.Text.ToDouble(0) - gearbox.TorqueResvStart = TbTqResvStart.Text.ToDouble(0) - gearbox.StartSpeed = TbStartSpeed.Text.ToDouble(0) - gearbox.StartAcc = TbStartAcc.Text.ToDouble(0) - - gearbox.Type = CType(CbGStype.SelectedValue, GearboxType) - - gearbox.Type.AutomaticTransmission() - gearbox.TorqueConverterFile = TbTCfile.Text - gearbox.TorqueConverterReferenceRpm = TbTCrefrpm.Text.ToDouble(0) - gearbox.TorqueConverterInertia = TbTCinertia.Text.ToDouble(0) - gearbox.TorqueConverterShiftPolygonFile = TBTCShiftPolygon.Text - gearbox.TorqueConverterMaxSpeed = tbTCmaxSpeed.Text.ToDouble(0) - - gearbox.DownshiftAfterUpshift = tbDownshiftAfterUpshift.Text.ToDouble(0) - gearbox.UpshiftAfterDownshift = tbUpshiftAfterDownshift.Text.ToDouble(0) - gearbox.UpshiftMinAcceleration = tbUpshiftMinAcceleration.Text.ToDouble(0) - - gearbox.PSInertiaFactor = tbATInertiaFactor.Text.ToDouble(0) - gearbox.PSShiftTime = tbATShiftTime.Text.ToDouble(0) - - - If Not gearbox.SaveFile Then - MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) - Return False - End If - - If AutoSendTo Then - If VectoJobForm.Visible Then - If UCase(FileRepl(VectoJobForm.TbGBX.Text, JobDir)) <> UCase(file) Then _ - VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(file, JobDir) - VectoJobForm.UpdatePic() - End If - End If - - GearboxFileBrowser.UpdateHistory(file) - Text = GetFilenameWithoutPath(file, True) - LbStatus.Text = "" - - _changed = False - - Return True - End Function + 'CbGStype.SelectedIndex = 0 -#Region "Change Events" + TbName.Text = "" + TbTracInt.Text = "" + TBI_getr.Text = "" + + LvGears.Items.Clear() - 'Change Status ändern |@@| Change Status change - Private Sub Change() - If Not _changed Then - LbStatus.Text = "Unsaved changes in current file" - _changed = True - End If - End Sub + LvGears.Items.Add(CreateListviewItem("Axle", 1, "1", "", "")) + + 'Me.ChSkipGears.Checked = False 'set by CbGStype.SelectedIndexChanged + 'Me.ChShiftInside.Checked = False 'set by CbGStype.SelectedIndexChanged + TbTqResv.Text = (DeclarationData.Gearbox.TorqueReserve*100).ToGUIFormat() + TbMinTimeBetweenShifts.Text = DeclarationData.Gearbox.MinTimeBetweenGearshifts.ToGUIFormat() + TbTqResvStart.Text = (DeclarationData.Gearbox.TorqueReserveStart*100).ToGUIFormat() + TbStartSpeed.Text = DeclarationData.Gearbox.StartSpeed.ToGUIFormat() ' in m/s! + TbStartAcc.Text = DeclarationData.Gearbox.StartAcceleration.ToGUIFormat() + + tbUpshiftMinAcceleration.Text = DeclarationData.Gearbox.UpshiftMinAcceleration.ToGUIFormat() + tbTCLUpshiftMinAcceleration.Text = "" + tbTCCUpshiftMinAcceleration.Text = "" + + tbDownshiftAfterUpshift.Text = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat() + tbUpshiftAfterDownshift.Text = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() + + 'ChTCon.Checked = False 'set by CbGStype.SelectedIndexChanged + TbTCfile.Text = "" + TbTCrefrpm.Text = "" + TbTCinertia.Text = "" + + DeclInit() - ' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts - Private Function ChangeCheckCancel() As Boolean + _gbxFile = "" + Text = "GBX Editor" + LbStatus.Text = "" - 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 + _changed = False + UpdatePic() + End Sub - Return False + 'Open file + Public Sub OpenGbx(file As String) + + If ChangeCheckCancel() Then Exit Sub + + Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(file), + IEngineeringInputDataProvider) + Dim gearbox As IGearboxEngineeringInputData = inputData.GearboxInputData + Dim axlegear As IAxleGearInputData = inputData.AxleGearInputData + + If Cfg.DeclMode <> gearbox.SavedInDeclarationMode Then + Select Case WrongMode() + Case 1 + Close() + MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked + MainForm.OpenVectoFile(file) + Case - 1 + Exit Sub + End Select + End If - End If - End Function + Dim basePath As String = Path.GetDirectoryName(file) + TbName.Text = gearbox.ModelName + TbTracInt.Text = gearbox.TractionInterruption.ToGUIFormat() + TBI_getr.Text = gearbox.Inertia.ToGUIFormat() - Private Sub TbName_TextChanged(sender As Object, e As EventArgs) Handles TbName.TextChanged - Change() - End Sub + LvGears.Items.Clear() - Private Sub TBI_getr_TextChanged(sender As Object, e As EventArgs) Handles TBI_getr.TextChanged - Change() - End Sub + Dim lossmap As String = "" + Try + lossmap = If(axlegear.LossMap Is Nothing, axlegear.Efficiency.ToGUIFormat(), + GetRelativePath(axlegear.LossMap.Source, basePath)) + Catch ex As Exception + End Try - Private Sub TbTracInt_TextChanged(sender As Object, e As EventArgs) Handles TbTracInt.TextChanged - Change() - End Sub + LvGears.Items.Add(CreateListviewItem("Axle", axlegear.Ratio, lossmap, "", "")) - Private Sub TbTqResv_TextChanged(sender As Object, e As EventArgs) Handles TbTqResv.TextChanged - Change() - End Sub + For Each gear As ITransmissionInputData In gearbox.Gears + lossmap = "" + Try + lossmap = If(gear.LossMap Is Nothing, gear.Efficiency.ToGUIFormat(), GetRelativePath(gear.LossMap.Source, basePath)) + Catch ex As Exception - Private Sub TbShiftTime_TextChanged(sender As Object, e As EventArgs) Handles TbMinTimeBetweenShifts.TextChanged - Change() - End Sub + End Try + LvGears.Items.Add(CreateListviewItem(gear.Gear.ToString("00"), gear.Ratio, + lossmap, + If(gear.ShiftPolygon Is Nothing, "", GetRelativePath(gear.ShiftPolygon.Source, basePath)), + If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.ToGUIFormat()))) + Next - Private Sub TbTqResvStart_TextChanged(sender As Object, e As EventArgs) Handles TbTqResvStart.TextChanged - Change() - End Sub + TbTqResv.Text = (gearbox.TorqueReserve*100).ToGUIFormat() + TbMinTimeBetweenShifts.Text = gearbox.MinTimeBetweenGearshift.ToGUIFormat() + TbTqResvStart.Text = (gearbox.StartTorqueReserve*100).ToGUIFormat() + TbStartSpeed.Text = gearbox.StartSpeed.ToGUIFormat() + TbStartAcc.Text = gearbox.StartAcceleration.ToGUIFormat() + + Dim torqueConverter As ITorqueConverterEngineeringInputData = gearbox.TorqueConverter + If torqueConverter Is Nothing OrElse gearbox.Type.ManualTransmission() Then + TbTCfile.Text = "" + TbTCrefrpm.Text = "" + TbTCinertia.Text = "" + TBTCShiftPolygon.Text = "" + tbTCmaxSpeed.Text = "" + tbTCLUpshiftMinAcceleration.Text = "" + tbTCCUpshiftMinAcceleration.Text = "" - Private Sub TbStartSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbStartSpeed.TextChanged - Change() - End Sub + Else + TbTCfile.Text = If(torqueConverter.TCData Is Nothing, "", GetRelativePath(torqueConverter.TCData.Source, basePath)) + TbTCrefrpm.Text = If(torqueConverter.ReferenceRPM Is Nothing, "", torqueConverter.ReferenceRPM.AsRPM.ToGUIFormat()) + TbTCinertia.Text = If(torqueConverter.Inertia Is Nothing, "", torqueConverter.Inertia.ToGUIFormat()) + TBTCShiftPolygon.Text = + If(torqueConverter.ShiftPolygon Is Nothing, "", GetRelativePath(torqueConverter.ShiftPolygon.Source, basePath)) + tbTCmaxSpeed.Text = + If(torqueConverter.MaxInputSpeed Is Nothing, "", torqueConverter.MaxInputSpeed.AsRPM.ToGUIFormat()) + tbTCLUpshiftMinAcceleration.Text = torqueConverter.CLUpshiftMinAcceleration.ToGUIFormat() + tbTCCUpshiftMinAcceleration.Text = torqueConverter.CCUpshiftMinAcceleration.ToGUIFormat() + End If - Private Sub TbStartAcc_TextChanged(sender As Object, e As EventArgs) Handles TbStartAcc.TextChanged - Change() - End Sub + tbUpshiftMinAcceleration.Text = gearbox.UpshiftMinAcceleration.ToGUIFormat() + tbDownshiftAfterUpshift.Text = gearbox.DownshiftAfterUpshiftDelay.ToGUIFormat() + tbUpshiftAfterDownshift.Text = gearbox.UpshiftAfterDownshiftDelay.ToGUIFormat() - Private Sub TbTCfile_TextChanged(sender As Object, e As EventArgs) Handles TbTCfile.TextChanged - Change() - End Sub + tbATInertiaFactor.Text = gearbox.PowerShiftInertiaFactor.ToGUIFormat() + tbATShiftTime.Text = gearbox.PowershiftShiftTime.ToGUIFormat() - Private Sub TbTCrefrpm_TextChanged(sender As Object, e As EventArgs) Handles TbTCrefrpm.TextChanged - Change() - End Sub + CbGStype.SelectedValue = gearbox.Type - Private Sub TbTCinertia_TextChanged(sender As Object, e As EventArgs) Handles TbTCinertia.TextChanged - Change() - End Sub + DeclInit() + + + GearboxFileBrowser.UpdateHistory(file) + Text = GetFilenameWithoutPath(file, True) + LbStatus.Text = "" + _gbxFile = file + Activate() + + _changed = False + UpdatePic() + End Sub + + Private Function CreateListviewItem(gear As String, ratio As Double, getrMap As String, + shiftPolygon As String, maxTorque As String) As ListViewItem + Dim retVal As ListViewItem = New ListViewItem(gear) + 'retVal.SubItems.Add(tc) + retVal.SubItems.Add(ratio.ToGUIFormat()) + retVal.SubItems.Add(getrMap) + retVal.SubItems.Add(shiftPolygon) + retVal.SubItems.Add(maxTorque) + Return retVal + End Function + + 'Save or Save As function = true if file is saved + Private Function SaveOrSaveAs(saveAs As Boolean) As Boolean + If _gbxFile = "" Or saveAs Then + If GearboxFileBrowser.SaveDialog(_gbxFile) Then + _gbxFile = GearboxFileBrowser.Files(0) + Else + Return False + End If + End If + Return SaveGbx(_gbxFile) + End Function + + 'Save file + Private Function SaveGbx(file As String) As Boolean + Dim gearbox As Gearbox + Dim i As Integer + + gearbox = New Gearbox + gearbox.FilePath = file + + gearbox.ModelName = TbName.Text + If Trim(gearbox.ModelName) = "" Then gearbox.ModelName = "Undefined" + + gearbox.TracIntrSi = TbTracInt.Text.ToDouble(0) + gearbox.GbxInertia = TBI_getr.Text.ToDouble(0) + + For i = 0 To LvGears.Items.Count - 1 + 'GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(GearboxTbl.TorqueConverter).Text = "on" And i > 0) + gearbox.GearRatios.Add(LvGears.Items(i).SubItems(GearboxTbl.Ratio).Text.ToDouble(0)) + gearbox.GearLossmaps.Add(New SubPath) + gearbox.GearLossMap(i) = LvGears.Items(i).SubItems(GearboxTbl.LossMapEfficiency).Text + gearbox.GearshiftFiles.Add(New SubPath) + gearbox.ShiftPolygonFile(i) = LvGears.Items(i).SubItems(GearboxTbl.ShiftPolygons).Text + 'GBX0.FldFiles.Add(New cSubPath) + 'GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text + gearbox.MaxTorque.Add(LvGears.Items(i).SubItems(GearboxTbl.MaxTorque).Text) + Next + + gearbox.TorqueResv = TbTqResv.Text.ToDouble(0) + gearbox.ShiftTime = TbMinTimeBetweenShifts.Text.ToDouble(0) + gearbox.TorqueResvStart = TbTqResvStart.Text.ToDouble(0) + gearbox.StartSpeed = TbStartSpeed.Text.ToDouble(0) + gearbox.StartAcc = TbStartAcc.Text.ToDouble(0) + + gearbox.Type = CType(CbGStype.SelectedValue, GearboxType) + + gearbox.Type.AutomaticTransmission() + gearbox.TorqueConverterFile = TbTCfile.Text + gearbox.TorqueConverterReferenceRpm = TbTCrefrpm.Text.ToDouble(0) + gearbox.TorqueConverterInertia = TbTCinertia.Text.ToDouble(0) + gearbox.TorqueConverterShiftPolygonFile = TBTCShiftPolygon.Text + gearbox.TorqueConverterMaxSpeed = tbTCmaxSpeed.Text.ToDouble(0) + + gearbox.DownshiftAfterUpshift = tbDownshiftAfterUpshift.Text.ToDouble(0) + gearbox.UpshiftAfterDownshift = tbUpshiftAfterDownshift.Text.ToDouble(0) + + gearbox.UpshiftMinAcceleration = tbUpshiftMinAcceleration.Text.ToDouble(0) + gearbox.TCLUpshiftMinAcceleration = tbTCLUpshiftMinAcceleration.Text.ToDouble(0) + gearbox.TCCUpshiftMinAcceleration = tbTCCUpshiftMinAcceleration.Text.ToDouble(0) + + gearbox.PSInertiaFactor = tbATInertiaFactor.Text.ToDouble(0) + gearbox.PSShiftTime = tbATShiftTime.Text.ToDouble(0) + + + If Not gearbox.SaveFile Then + MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) + Return False + End If + + If AutoSendTo Then + If VectoJobForm.Visible Then + If UCase(FileRepl(VectoJobForm.TbGBX.Text, JobDir)) <> UCase(file) Then _ + VectoJobForm.TbGBX.Text = GetFilenameWithoutDirectory(file, JobDir) + VectoJobForm.UpdatePic() + End If + End If + + GearboxFileBrowser.UpdateHistory(file) + Text = GetFilenameWithoutPath(file, True) + LbStatus.Text = "" + + _changed = False + + Return True + End Function + +#Region "Change Events" + + 'Change Status ändern |@@| Change Status change + Private Sub Change() + If Not _changed Then + 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 Object, e As EventArgs) _ + Handles TbName.TextChanged, TBI_getr.TextChanged, TbTracInt.TextChanged, TbTqResv.TextChanged, + TbMinTimeBetweenShifts.TextChanged, TbTqResvStart.TextChanged, TbStartSpeed.TextChanged, TbStartAcc.TextChanged, + TbTCfile.TextChanged, TbTCrefrpm.TextChanged, TbTCinertia.TextChanged, tbTCmaxSpeed.TextChanged, + tbTCCUpshiftMinAcceleration.TextChanged, tbTCLUpshiftMinAcceleration.TextChanged + Change() + End Sub #End Region @@ -505,7 +486,8 @@ Public Class GearboxForm Change() 'ChTCon.Enabled = (GStype.AutomaticTransmission()) - PnTC.Enabled = gStype.AutomaticTransmission() + gbTC.Enabled = gStype.AutomaticTransmission() + gbTCAccMin.Enabled = gStype.AutomaticTransmission() TbStartAcc.Enabled = Not gStype.AutomaticTransmission() TbStartSpeed.Enabled = Not gStype.AutomaticTransmission() TbTqResv.Enabled = Not gStype.AutomaticTransmission() @@ -765,7 +747,7 @@ Public Class GearboxForm Dim jobFile As String = VectoJobForm.VectoFile If Not jobFile Is Nothing AndAlso File.Exists(jobFile) Then - Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadJsonJob(jobFile), + Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadJsonJob(jobFile), IEngineeringInputDataProvider) If (inputData Is Nothing) Then Exit Sub diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index 05470421bb..3e4a270c92 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -55,55 +55,56 @@ Public Class Gearbox Public Type As GearboxType - 'Torque Converter Input - Public TorqueConverterReferenceRpm As Double - Private ReadOnly _torqueConverterFile As New SubPath - Public TorqueConverterInertia As Double - Public TorqueConverterShiftPolygonFile As String + 'Torque Converter Input + Public TorqueConverterReferenceRpm As Double + Private ReadOnly _torqueConverterFile As New SubPath + Public TorqueConverterInertia As Double + Public TorqueConverterShiftPolygonFile As String + Public TCLUpshiftMinAcceleration As Double + Public TCCUpshiftMinAcceleration As Double + Public UpshiftMinAcceleration As Double + Public DownshiftAfterUpshift As Double + Public UpshiftAfterDownshift As Double + Public TorqueConverterMaxSpeed As Double - Public UpshiftMinAcceleration As Double - Public DownshiftAfterUpshift As Double - Public UpshiftAfterDownshift As Double - Public TorqueConverterMaxSpeed As Double + Public PSInertiaFactor As Double - Public PSInertiaFactor As Double + Public PSShiftTime As Double - Public PSShiftTime As Double + Public Sub New() + _myPath = "" + _filePath = "" + SetDefault() + End Sub - Public Sub New() - _myPath = "" - _filePath = "" - SetDefault() - End Sub + Private Sub SetDefault() - Private Sub SetDefault() + ModelName = "" + GbxInertia = 0 + TracIntrSi = 0 - ModelName = "" - GbxInertia = 0 - TracIntrSi = 0 + GearRatios = New List(Of Double) + GearLossmaps = New List(Of SubPath) + GearshiftFiles = New List(Of SubPath) + MaxTorque = New List(Of String) - GearRatios = New List(Of Double) - GearLossmaps = New List(Of SubPath) - GearshiftFiles = New List(Of SubPath) - MaxTorque = New List(Of String) + TorqueResv = 0 + 'SkipGears = False + ShiftTime = 0 + TorqueResvStart = 0 + StartSpeed = 0 + StartAcc = 0 + 'ShiftInside = False - TorqueResv = 0 - 'SkipGears = False - ShiftTime = 0 - TorqueResvStart = 0 - StartSpeed = 0 - StartAcc = 0 - 'ShiftInside = False + Type = GearboxType.MT - Type = GearboxType.MT + TorqueConverterReferenceRpm = 0 + _torqueConverterFile.Clear() - TorqueConverterReferenceRpm = 0 - _torqueConverterFile.Clear() - - TorqueConverterInertia = 0 - End Sub + TorqueConverterInertia = 0 + End Sub Public Function SaveFile() As Boolean @@ -387,6 +388,21 @@ Public Class Gearbox End Get End Property + Public ReadOnly Property CLUpshiftMinAcceleration As MeterPerSquareSecond _ + Implements ITorqueConverterEngineeringInputData.CLUpshiftMinAcceleration + Get + Return TCLUpshiftMinAcceleration.SI (Of MeterPerSquareSecond)() + End Get + End Property + + Public ReadOnly Property CCUpshiftMinAcceleration As MeterPerSquareSecond _ + Implements ITorqueConverterEngineeringInputData.CCUpshiftMinAcceleration + Get + Return TCCUpshiftMinAcceleration.SI (Of MeterPerSquareSecond)() + End Get + End Property + + Public ReadOnly Property TractionInterruption As Second Implements IGearboxEngineeringInputData.TractionInterruption Get Return TracIntrSi.SI (Of Second)() @@ -421,7 +437,7 @@ Public Class Gearbox End Property Public ReadOnly Property DownshiftAferUpshiftDelay As Second _ - Implements IGearboxEngineeringInputData.DownshiftAferUpshiftDelay + Implements IGearboxEngineeringInputData.DownshiftAfterUpshiftDelay Get Return DownshiftAfterUpshift.SI (Of Second)() End Get @@ -432,66 +448,68 @@ Public Class Gearbox Get Return UpshiftAfterDownshift.SI (Of Second)() End Get - End Property - - Public ReadOnly Property PowershiftShiftTime As Second Implements IGearboxEngineeringInputData.PowershiftShiftTime - Get - Return PSShiftTime.SI(Of Second)() - End Get - End Property - Public ReadOnly Property PowerShiftInertiaFactor As Double Implements IGearboxEngineeringInputData.PowerShiftInertiaFactor - Get - Return PSInertiaFactor - End Get - End Property - - Public ReadOnly Property IGearboxEngineeringInputData_UpshiftMinAcceleration As MeterPerSquareSecond _ - Implements IGearboxEngineeringInputData.UpshiftMinAcceleration - Get - Return UpshiftMinAcceleration.SI(Of MeterPerSquareSecond)() - End Get - End Property - - - Public ReadOnly Property IGearboxEngineeringInputData_StartSpeed As MeterPerSecond _ - Implements IGearboxEngineeringInputData.StartSpeed - Get - Return StartSpeed.SI(Of MeterPerSecond)() - End Get - End Property - - Public ReadOnly Property MinTimeBetweenGearshift As Second _ - Implements IGearboxEngineeringInputData.MinTimeBetweenGearshift - Get - Return ShiftTime.SI(Of Second)() - End Get - End Property - - Public ReadOnly Property TCData As TableData Implements ITorqueConverterDeclarationInputData.TCData - Get - If Not File.Exists(_torqueConverterFile.FullPath) Then Return Nothing - Return VectoCSVFile.Read(_torqueConverterFile.FullPath) - End Get - End Property - - - Public ReadOnly Property Ratio As Double Implements IAxleGearInputData.Ratio - Get - Return GearRatios(0) - End Get - End Property - - Public ReadOnly Property LossMap As TableData Implements IAxleGearInputData.LossMap - Get - If Not File.Exists(GearLossmaps(0).FullPath) Then Return Nothing - Return VectoCSVFile.Read(GearLossmaps(0).FullPath) - End Get - End Property - - Public ReadOnly Property Efficiency As Double Implements IAxleGearInputData.Efficiency - Get - Return GearLossMap(0, True).ToDouble(0) - End Get - End Property + End Property + + Public ReadOnly Property PowershiftShiftTime As Second Implements IGearboxEngineeringInputData.PowershiftShiftTime + Get + Return PSShiftTime.SI (Of Second)() + End Get + End Property + + Public ReadOnly Property PowerShiftInertiaFactor As Double _ + Implements IGearboxEngineeringInputData.PowerShiftInertiaFactor + Get + Return PSInertiaFactor + End Get + End Property + + Public ReadOnly Property IGearboxEngineeringInputData_UpshiftMinAcceleration As MeterPerSquareSecond _ + Implements IGearboxEngineeringInputData.UpshiftMinAcceleration + Get + Return UpshiftMinAcceleration.SI (Of MeterPerSquareSecond)() + End Get + End Property + + + Public ReadOnly Property IGearboxEngineeringInputData_StartSpeed As MeterPerSecond _ + Implements IGearboxEngineeringInputData.StartSpeed + Get + Return StartSpeed.SI (Of MeterPerSecond)() + End Get + End Property + + Public ReadOnly Property MinTimeBetweenGearshift As Second _ + Implements IGearboxEngineeringInputData.MinTimeBetweenGearshift + Get + Return ShiftTime.SI (Of Second)() + End Get + End Property + + Public ReadOnly Property TCData As TableData Implements ITorqueConverterDeclarationInputData.TCData + Get + If Not File.Exists(_torqueConverterFile.FullPath) Then Return Nothing + Return VectoCSVFile.Read(_torqueConverterFile.FullPath) + End Get + End Property + + + Public ReadOnly Property Ratio As Double Implements IAxleGearInputData.Ratio + Get + Return GearRatios(0) + End Get + End Property + + Public ReadOnly Property LossMap As TableData Implements IAxleGearInputData.LossMap + Get + If Not File.Exists(GearLossmaps(0).FullPath) Then Return Nothing + Return VectoCSVFile.Read(GearLossmaps(0).FullPath) + End Get + End Property + + Public ReadOnly Property Efficiency As Double Implements IAxleGearInputData.Efficiency + Get + Return GearLossMap(0, True).ToDouble(0) + End Get + End Property End Class diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb index a98d968390..295cb28882 100644 --- a/VECTO/OutputData/JSONFileWriter.vb +++ b/VECTO/OutputData/JSONFileWriter.vb @@ -78,72 +78,67 @@ Public Class JSONFileWriter 'Body Dim body As Dictionary(Of String, Object) = New Dictionary(Of String, Object) - body.Add(JsonKeys.SavedInDeclMode, Cfg.DeclMode) - - body.Add(JsonKeys.Gearbox_ModelName, gbx.ModelName) - - body.Add(JsonKeys.Gearbox_Inertia, gbx.Inertia.Value()) - body.Add(JsonKeys.Gearbox_TractionInterruption, gbx.TractionInterruption.Value()) + body.Add(JsonKeys.SavedInDeclMode, Cfg.DeclMode) + body.Add(JsonKeys.Gearbox_ModelName, gbx.ModelName) + body.Add(JsonKeys.Gearbox_Inertia, gbx.Inertia.Value()) + body.Add(JsonKeys.Gearbox_TractionInterruption, gbx.TractionInterruption.Value()) Dim ls As New List(Of Dictionary(Of String, Object)) Dim axlgDict As New Dictionary(Of String, Object) - axlgDict.Add(JsonKeys.Gearbox_Gear_Ratio, axl.Ratio) + axlgDict.Add(JsonKeys.Gearbox_Gear_Ratio, axl.Ratio) If axl.LossMap Is Nothing Then - axlgDict.Add(JsonKeys.Gearbox_Gear_Efficiency, axl.Efficiency) + axlgDict.Add(JsonKeys.Gearbox_Gear_Efficiency, axl.Efficiency) Else - axlgDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(axl.LossMap.Source, Path.GetDirectoryName(filename))) + axlgDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(axl.LossMap.Source, Path.GetDirectoryName(filename))) End If ls.Add(axlgDict) For Each gear As ITransmissionInputData In gbx.Gears Dim gearDict As New Dictionary(Of String, Object) - gearDict.Add(JsonKeys.Gearbox_Gear_Ratio, gear.Ratio) + gearDict.Add(JsonKeys.Gearbox_Gear_Ratio, gear.Ratio) If gear.LossMap Is Nothing Then - gearDict.Add(JsonKeys.Gearbox_Gear_Efficiency, gear.Efficiency) + gearDict.Add(JsonKeys.Gearbox_Gear_Efficiency, gear.Efficiency) Else - gearDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, GetRelativePath(gear.LossMap.Source, Path.GetDirectoryName(filename))) + gearDict.Add(JsonKeys.Gearbox_Gear_LossMapFile, + GetRelativePath(gear.LossMap.Source, Path.GetDirectoryName(filename))) End If - gearDict.Add(JsonKeys.Gearbox_Gear_ShiftPolygonFile, If _ - (Not gbx.SavedInDeclarationMode AndAlso Not gear.ShiftPolygon Is Nothing, - GetRelativePath(gear.ShiftPolygon.Source, Path.GetDirectoryName(filename)), "")) - gearDict.Add("MaxTorque", If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.Value().ToString())) + gearDict.Add(JsonKeys.Gearbox_Gear_ShiftPolygonFile, If _ + (Not gbx.SavedInDeclarationMode AndAlso Not gear.ShiftPolygon Is Nothing, + GetRelativePath(gear.ShiftPolygon.Source, Path.GetDirectoryName(filename)), "")) + gearDict.Add("MaxTorque", If(gear.MaxTorque Is Nothing, "", gear.MaxTorque.Value().ToString())) ls.Add(gearDict) Next - body.Add(JsonKeys.Gearbox_Gears, ls) - - body.Add(JsonKeys.Gearbox_TorqueReserve, gbx.TorqueReserve * 100) - 'body.Add("SkipGears", gbx.sk) - body.Add(JsonKeys.Gearbox_ShiftTime, gbx.MinTimeBetweenGearshift.Value()) - 'body.Add("EaryShiftUp", gbx.ShiftInside) - - body.Add(JsonKeys.Gearbox_StartTorqueReserve, gbx.StartTorqueReserve * 100) - body.Add(JsonKeys.Gearbox_StartSpeed, gbx.StartSpeed.Value()) - body.Add(JsonKeys.Gearbox_StartAcceleration, gbx.StartAcceleration.Value()) - - body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString()) + body.Add(JsonKeys.Gearbox_Gears, ls) + body.Add(JsonKeys.Gearbox_TorqueReserve, gbx.TorqueReserve*100) + body.Add(JsonKeys.Gearbox_ShiftTime, gbx.MinTimeBetweenGearshift.Value()) + body.Add(JsonKeys.Gearbox_StartTorqueReserve, gbx.StartTorqueReserve*100) + body.Add(JsonKeys.Gearbox_StartSpeed, gbx.StartSpeed.Value()) + body.Add(JsonKeys.Gearbox_StartAcceleration, gbx.StartAcceleration.Value()) + body.Add(JsonKeys.Gearbox_GearboxType, gbx.Type.ToString()) Dim torqueConverter As ITorqueConverterEngineeringInputData = gbx.TorqueConverter Dim torqueConverterDict As New Dictionary(Of String, Object) torqueConverterDict.Add("Enabled", Not torqueConverter Is Nothing AndAlso gbx.Type.AutomaticTransmission()) If gbx.Type.AutomaticTransmission() AndAlso Not torqueConverter Is Nothing Then torqueConverterDict.Add("File", GetRelativePath(torqueConverter.TCData.Source, Path.GetDirectoryName(filename))) - torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, torqueConverter.ReferenceRPM.AsRPM) - torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value()) - torqueConverterDict.Add("MaxTCSpeed", torqueConverter.MaxInputSpeed.AsRPM) - torqueConverterDict.Add("ShiftPolygon", If _ - (Not gbx.SavedInDeclarationMode AndAlso Not torqueConverter.ShiftPolygon Is Nothing, - GetRelativePath(torqueConverter.ShiftPolygon.Source, Path.GetDirectoryName(filename)), "")) + torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_ReferenceRPM, torqueConverter.ReferenceRPM.AsRPM) + torqueConverterDict.Add(JsonKeys.Gearbox_TorqueConverter_Inertia, torqueConverter.Inertia.Value()) + torqueConverterDict.Add("MaxTCSpeed", torqueConverter.MaxInputSpeed.AsRPM) + torqueConverterDict.Add("ShiftPolygon", + If (Not gbx.SavedInDeclarationMode AndAlso Not torqueConverter.ShiftPolygon Is Nothing, + GetRelativePath(torqueConverter.ShiftPolygon.Source, Path.GetDirectoryName(filename)), "")) + torqueConverterDict.Add("CLUpshiftMinAcceleration", torqueConverter.CLUpshiftMinAcceleration.Value()) + torqueConverterDict.Add("CCUpshiftMinAcceleration", torqueConverter.CCUpshiftMinAcceleration.Value()) End If - body.Add(JsonKeys.Gearbox_TorqueConverter, torqueConverterDict) + body.Add(JsonKeys.Gearbox_TorqueConverter, torqueConverterDict) - - body.Add("DownshiftAferUpshiftDelay", gbx.DownshiftAferUpshiftDelay.Value()) + body.Add("DownshiftAfterUpshiftDelay", gbx.DownshiftAfterUpshiftDelay.Value()) body.Add("UpshiftAfterDownshiftDelay", gbx.UpshiftAfterDownshiftDelay.Value()) - body.Add("UpshiftMinAcceleration", gbx.UpshiftMinAcceleration.Value()) + body.Add("UpshiftMinAcceleration", gbx.UpshiftMinAcceleration.Value()) - body.Add("PowershiftShiftTime", gbx.PowershiftShiftTime.Value()) - body.Add("PowershiftInertiaFactor", gbx.PowerShiftInertiaFactor) + body.Add("PowershiftShiftTime", gbx.PowershiftShiftTime.Value()) + body.Add("PowershiftInertiaFactor", gbx.PowerShiftInertiaFactor) WriteFile(header, body, filename) End Sub @@ -157,8 +152,6 @@ Public Class JSONFileWriter Dim header As Dictionary(Of String, Object) = GetHeader(VehicleFormatVersion) 'Body - - Dim retarderOut As Dictionary(Of String, Object) = New Dictionary(Of String, Object)() If retarder Is Nothing Then retarderOut.Add("Type", RetarderType.None.GetName()) @@ -205,29 +198,24 @@ Public Class JSONFileWriter {"rdyn", vehicle.DynamicTyreRadius.ConvertTo().Milli.Meter.Value()}, {"CdCorrMode", vehicle.CrossWindCorrectionMode.GetName()}, {"CdCorrFile", - If _ - ( - (vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.SpeedDependentCorrectionFactor OrElse + If((vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.SpeedDependentCorrectionFactor OrElse vehicle.CrossWindCorrectionMode = CrossWindCorrectionMode.VAirBetaLookupTable) AndAlso - Not vehicle.CrosswindCorrectionMap Is Nothing, GetRelativePath(vehicle.CrosswindCorrectionMap.Source, basePath), "") + Not vehicle.CrosswindCorrectionMap Is Nothing, GetRelativePath(vehicle.CrosswindCorrectionMap.Source, basePath), + "") }, {"Retarder", retarderOut}, {"Angledrive", angledriveOut}, {"PTO", ptoOut}, {"AxleConfig", New Dictionary(Of String, Object) From { {"Type", vehicle.AxleConfiguration.GetName()}, - {"Axles", (From axle In vehicle.Axles Select New Dictionary(Of String, Object) From { + {"Axles", From axle In vehicle.Axles Select New Dictionary(Of String, Object) From { {"Inertia", axle.Inertia.Value()}, {"Wheels", axle.Wheels}, {"AxleWeightShare", axle.AxleWeightShare}, {"TwinTyres", axle.TwinTyres}, {"RRCISO", axle.RollResistanceCoefficient}, {"FzISO", axle.TyreTestLoad.Value()} - } - )} - } - } - } + }}}}} WriteFile(header, body, filename) End Sub @@ -306,16 +294,14 @@ Public Class JSONFileWriter {"MinTime", driver.StartStop.MinTime.Value()}, {"Delay", driver.StartStop.Delay.Value()}}) If Not job.SavedInDeclarationMode Then - Dim dfTargetSpeed As String = If _ - ( - Not driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup Is Nothing AndAlso - File.Exists(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source), - GetRelativePath(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source, basePath), "") - Dim dfVelocityDrop As String = If _ - ( - Not driver.Lookahead.CoastingDecisionFactorVelocityDropLookup Is Nothing AndAlso - File.Exists(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source), - GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, basePath), "") + Dim dfTargetSpeed As String = If( + Not driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup Is Nothing AndAlso + File.Exists(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source), + GetRelativePath(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source, basePath), "") + Dim dfVelocityDrop As String = If( + Not driver.Lookahead.CoastingDecisionFactorVelocityDropLookup Is Nothing AndAlso + File.Exists(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source), + GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, basePath), "") body.Add("LAC", New Dictionary(Of String, Object) From { {"Enabled", driver.Lookahead.Enabled}, {"PreviewDistanceFactor", driver.Lookahead.LookaheadDistanceFactor}, diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs index 4117146ba0..31cabe02bb 100644 --- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs +++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs @@ -30,7 +30,6 @@ */ using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; @@ -187,15 +186,15 @@ namespace TUGraz.VectoCommon.InputData /// </summary> ITorqueConverterEngineeringInputData TorqueConverter { get; } - Second DownshiftAferUpshiftDelay { get; } + Second DownshiftAfterUpshiftDelay { get; } Second UpshiftAfterDownshiftDelay { get; } MeterPerSquareSecond UpshiftMinAcceleration { get; } - Second PowershiftShiftTime { get; } + Second PowershiftShiftTime { get; } - double PowerShiftInertiaFactor { get; } + double PowerShiftInertiaFactor { get; } } public interface ITorqueConverterEngineeringInputData : ITorqueConverterDeclarationInputData @@ -222,6 +221,16 @@ namespace TUGraz.VectoCommon.InputData TableData ShiftPolygon { get; } PerSecond MaxInputSpeed { get; } + + /// <summary> + /// Min Acceleration after C->L upshifts. + /// </summary> + MeterPerSquareSecond CLUpshiftMinAcceleration { get; } + + /// <summary> + /// Min Acceleration after C->C upshifts. + /// </summary> + MeterPerSquareSecond CCUpshiftMinAcceleration { get; } } public interface IEngineEngineeringInputData : IEngineDeclarationInputData diff --git a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs index c78ef4f209..9f05eb3a83 100644 --- a/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/StringExtensionMethods.cs @@ -41,6 +41,13 @@ namespace TUGraz.VectoCommon.Utils { public static double ToDouble(this string self, double? defaultValue = null) { + if (string.IsNullOrWhiteSpace(self)) { + if (defaultValue.HasValue) { + return defaultValue.Value; + } + throw new FormatException("Cannot convert an empty string to a number."); + } + try { return double.Parse(self, CultureInfo.InvariantCulture); } catch (FormatException) { diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs index a31d4430c9..758b41c958 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs @@ -30,7 +30,6 @@ */ using System.Collections.Generic; -using System.Data; using System.Linq; using Newtonsoft.Json.Linq; using TUGraz.VectoCommon.Exceptions; @@ -306,7 +305,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return this; } } - public Second DownshiftAferUpshiftDelay + public Second DownshiftAfterUpshiftDelay { get { @@ -336,34 +335,46 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } - public Second PowershiftShiftTime - { - get - { - return Body["PowershiftShiftTime"] == null - ? 0.8.SI<Second>() - : Body.GetEx<double>("PowershiftShiftTime").SI<Second>(); - } - } + public Second PowershiftShiftTime + { + get + { + return Body["PowershiftShiftTime"] == null + ? 0.8.SI<Second>() + : Body.GetEx<double>("PowershiftShiftTime").SI<Second>(); + } + } - public double PowerShiftInertiaFactor - { - get { return Body["PowershiftInertiaFactor"] == null ? 1 : Body.GetEx<double>("PowershiftInertiaFactor"); } - } + public double PowerShiftInertiaFactor + { + get { return Body["PowershiftInertiaFactor"] == null ? 1 : Body.GetEx<double>("PowershiftInertiaFactor"); } + } - #endregion + #endregion #region ITorqueConverterInputData - // deprecated: AT transmission has to have a torque converter. - //public virtual bool Enabled - //{ - // get - // { - // return false; - // // TODO mk-2016-05-09: JSON ITorqueConverterInputData.Enabled always true --> as soon as TC is implemented, set to correct value! - // } - //} + public MeterPerSquareSecond CLUpshiftMinAcceleration + { + get + { + return Body[JsonKeys.Gearbox_TorqueConverter] != null && + Body[JsonKeys.Gearbox_TorqueConverter]["CLUpshiftMinAcceleration"] != null + ? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("CLUpshiftMinAcceleration").SI<MeterPerSquareSecond>() + : UpshiftMinAcceleration; + } + } + + public MeterPerSquareSecond CCUpshiftMinAcceleration + { + get + { + return Body[JsonKeys.Gearbox_TorqueConverter] != null && + Body[JsonKeys.Gearbox_TorqueConverter]["CCUpshiftMinAcceleration"] != null + ? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("CCUpshiftMinAcceleration").SI<MeterPerSquareSecond>() + : UpshiftMinAcceleration; + } + } public virtual PerSecond ReferenceRPM { @@ -378,10 +389,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } - public PerSecond MaxInputSpeed - { - get { return Body[JsonKeys.Gearbox_TorqueConverter] != null && Body[JsonKeys.Gearbox_TorqueConverter]["MaxTCSpeed"] != null ? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("MaxTCSpeed").RPMtoRad() : 5000.RPMtoRad(); } - } + public PerSecond MaxInputSpeed + { + get + { + return Body[JsonKeys.Gearbox_TorqueConverter] != null && + Body[JsonKeys.Gearbox_TorqueConverter]["MaxTCSpeed"] != null + ? Body.GetEx(JsonKeys.Gearbox_TorqueConverter).GetEx<double>("MaxTCSpeed").RPMtoRad() + : 5000.RPMtoRad(); + } + } + public virtual TableData TCData { get diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs index 1a1320fcdd..136400b61c 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/TorqueConverterDataReader.cs @@ -44,17 +44,21 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { public class TorqueConverterDataReader { - public static TorqueConverterData ReadFromFile(string filename, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio) + public static TorqueConverterData ReadFromFile(string filename, PerSecond referenceRpm, PerSecond maxRpm, + ExecutionMode mode, double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration) { - return Create(VectoCSVFile.Read(filename), referenceRpm, maxRpm, mode, ratio); + return Create(VectoCSVFile.Read(filename), referenceRpm, maxRpm, mode, ratio, lcMinAcceleration, ccMinAcceleration); } - public static TorqueConverterData ReadFromStream(Stream stream, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio) + public static TorqueConverterData ReadFromStream(Stream stream, PerSecond referenceRpm, PerSecond maxRpm, + ExecutionMode mode, double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration) { - return Create(VectoCSVFile.ReadStream(stream), referenceRpm, maxRpm, mode, ratio); + return Create(VectoCSVFile.ReadStream(stream), referenceRpm, maxRpm, mode, ratio, lcMinAcceleration, + ccMinAcceleration); } - public static TorqueConverterData Create(DataTable data, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, double ratio) + public static TorqueConverterData Create(DataTable data, PerSecond referenceRpm, PerSecond maxRpm, ExecutionMode mode, + double ratio, MeterPerSquareSecond lcMinAcceleration, MeterPerSquareSecond ccMinAcceleration) { if (data == null) throw new VectoException("TorqueConverter Characteristics data is missing."); @@ -70,28 +74,34 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData if (HeaderIsValid(data.Columns)) { characteristicTorque = (from DataRow row in data.Rows select - new TorqueConverterEntry() { - SpeedRatio = row.ParseDouble(Fields.SpeedRatio), - Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(), - TorqueRatio = row.ParseDouble(Fields.TorqueRatio) - }).ToArray(); + new TorqueConverterEntry() { + SpeedRatio = row.ParseDouble(Fields.SpeedRatio), + Torque = row.ParseDouble(Fields.CharacteristicTorque).SI<NewtonMeter>(), + TorqueRatio = row.ParseDouble(Fields.TorqueRatio) + }).ToArray(); } else { characteristicTorque = (from DataRow row in data.Rows select - new TorqueConverterEntry() { - SpeedRatio = row.ParseDouble(0), - Torque = row.ParseDouble(2).SI<NewtonMeter>(), - TorqueRatio = row.ParseDouble(1) - }).ToArray(); + new TorqueConverterEntry() { + SpeedRatio = row.ParseDouble(0), + Torque = row.ParseDouble(2).SI<NewtonMeter>(), + TorqueRatio = row.ParseDouble(1) + }).ToArray(); } if (mode == ExecutionMode.Declaration) { - characteristicTorque = characteristicTorque.Where(x => x.SpeedRatio < ratio).Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)).ToArray(); + characteristicTorque = + characteristicTorque.Where(x => x.SpeedRatio < ratio) + .Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)) + .ToArray(); } else { if (!characteristicTorque.Any(x => x.SpeedRatio > ratio)) { - characteristicTorque = characteristicTorque.Where(x => x.SpeedRatio < ratio).Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)).ToArray(); + characteristicTorque = + characteristicTorque.Where(x => x.SpeedRatio < ratio) + .Concat(DeclarationData.Gearbox.GetTorqueConverterDragCurve(ratio)) + .ToArray(); } } - return new TorqueConverterData(characteristicTorque, referenceRpm, maxRpm); + return new TorqueConverterData(characteristicTorque, referenceRpm, maxRpm, lcMinAcceleration, ccMinAcceleration); } private static bool HeaderIsValid(DataColumnCollection columns) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 6e79022be5..4c13407892 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -215,19 +215,20 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter } var ratio = double.IsNaN(retVal.Gears[1].Ratio) ? 1 : retVal.Gears[1].TorqueConverterRatio / retVal.Gears[1].Ratio; retVal.TorqueConverterData = TorqueConverterDataReader.Create(gearbox.TorqueConverter.TCData, - gearbox.TorqueConverter.ReferenceRPM, gearbox.TorqueConverter.MaxInputSpeed, ExecutionMode.Engineering, ratio); + gearbox.TorqueConverter.ReferenceRPM, gearbox.TorqueConverter.MaxInputSpeed, ExecutionMode.Engineering, ratio, + gearbox.TorqueConverter.CLUpshiftMinAcceleration, gearbox.TorqueConverter.CCUpshiftMinAcceleration); } else { if (retVal.Type.AutomaticTransmission()) { throw new VectoException("AT gearbox model requires torque converter"); } } - if (retVal.Type.AutomaticTransmission()) { - retVal.PowershiftShiftTime = gearbox.PowershiftShiftTime; - retVal.PowershiftInertiaFactor = gearbox.PowerShiftInertiaFactor; - } + if (retVal.Type.AutomaticTransmission()) { + retVal.PowershiftShiftTime = gearbox.PowershiftShiftTime; + retVal.PowershiftInertiaFactor = gearbox.PowerShiftInertiaFactor; + } - retVal.DownshiftAfterUpshiftDelay = gearbox.DownshiftAferUpshiftDelay; + retVal.DownshiftAfterUpshiftDelay = gearbox.DownshiftAfterUpshiftDelay; retVal.UpshiftAfterDownshiftDelay = gearbox.UpshiftAfterDownshiftDelay; retVal.UpshiftMinAcceleration = gearbox.UpshiftMinAcceleration; return retVal; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs index 3258dad075..69ea91c740 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/TorqueConverterData.cs @@ -44,22 +44,29 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox { protected internal readonly TorqueConverterEntry[] TorqueConverterEntries; + [Required, SIRange(0, double.MaxValue)] public PerSecond ReferenceSpeed { get; protected internal set; } - // the inertia is added to the engine's inertia and not considered separately - //public KilogramSquareMeter Inertia { get; protected internal set; } + [Required, SIRange(0, double.MaxValue)] + public MeterPerSquareSecond CLUpshiftMinAcceleration { get; internal set; } + [Required, SIRange(0, double.MaxValue)] + public MeterPerSquareSecond CCUpshiftMinAcceleration { get; internal set; } + + [Required, SIRange(0, double.MaxValue)] public PerSecond TorqueConverterSpeedLimit { get; protected internal set; } - // only used for validation! - internal double RequiredSpeedRatio { get; set; } + internal double RequiredSpeedRatio; // only used for validation! protected internal TorqueConverterData(IEnumerable<TorqueConverterEntry> torqueConverterEntries, - PerSecond referenceSpeed, PerSecond maxRpm) + PerSecond referenceSpeed, PerSecond maxRpm, MeterPerSquareSecond clUpshiftMinAcceleration, + MeterPerSquareSecond ccUpshiftMinAcceleration) { TorqueConverterEntries = torqueConverterEntries.ToArray(); ReferenceSpeed = referenceSpeed; TorqueConverterSpeedLimit = maxRpm; + CLUpshiftMinAcceleration = clUpshiftMinAcceleration; + CCUpshiftMinAcceleration = ccUpshiftMinAcceleration; } /// <summary> @@ -151,7 +158,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox } } - // No solution found. Throw Errror + // No solution found. Throw Error var nu = outAngularVelocity / inAngularVelocity; var nuMax = TorqueConverterEntries.Last().SpeedRatio; @@ -202,7 +209,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox return FindOperatingPoint(inAngularVelocity, solutions.Max().SI<PerSecond>()); } - public TorqueConverterOperatingPoint FindOperatingPointForPowerDemand(Watt power, PerSecond prevInputSpeed, PerSecond nextOutputSpeed, KilogramSquareMeter inertia, Second dt, Watt previousPower) + public TorqueConverterOperatingPoint FindOperatingPointForPowerDemand(Watt power, PerSecond prevInputSpeed, + PerSecond nextOutputSpeed, KilogramSquareMeter inertia, Second dt, Watt previousPower) { var solutions = new List<double>(); var mpNorm = ReferenceSpeed.Value(); @@ -212,9 +220,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox new Point(segment.Item2.SpeedRatio, segment.Item2.Torque.Value())); var a = mpEdge.OffsetXY / (2 * mpNorm * mpNorm); - var b = inertia.Value() / (2 * dt.Value()) + mpEdge.SlopeXY * nextOutputSpeed.Value() / (2*mpNorm * mpNorm); + var b = inertia.Value() / (2 * dt.Value()) + mpEdge.SlopeXY * nextOutputSpeed.Value() / (2 * mpNorm * mpNorm); var c = 0; - var d = -inertia.Value()* prevInputSpeed.Value() * prevInputSpeed.Value() / (2 * dt.Value()) - power.Value() + previousPower.Value() / 2; + var d = -inertia.Value() * prevInputSpeed.Value() * prevInputSpeed.Value() / (2 * dt.Value()) - power.Value() + + previousPower.Value() / 2; var sol = VectoMath.CubicEquationSolver(a, b, c, d); var selected = sol.Where(x => x > 0 && nextOutputSpeed / x >= mpEdge.P1.X && nextOutputSpeed / x < mpEdge.P2.X); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs index bc729c5e71..1abaafbaf6 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs @@ -207,13 +207,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var nextEnginePower = currentEnginePower / nextEngineSpeed; var isAboveUpShift = IsAboveUpShiftCurve(gear, nextEnginePower, nextEngineSpeed, _gearbox.TorqueConverterLocked); - //var engineCanSupplyPower = - // currentEnginePower.IsSmallerOrEqual(DataBus.EngineStationaryFullPower(nextEngineSpeed)); - var reachableAcceleration = EstimateAccelerationForGear(nextGear, outAngularVelocity); var minAcceleration = _gearbox.TorqueConverterLocked ? ModelData.UpshiftMinAcceleration - : ModelData.TorqueConverterData.UpshiftMinAcceleration; + : ModelData.TorqueConverterData.CLUpshiftMinAcceleration; + minAcceleration = VectoMath.Min(minAcceleration, DataBus.DriverAcceleration); var minAccelerationReachable = reachableAcceleration.IsGreaterOrEqual(minAcceleration); // todo mk-2016-12-19: check that accMin can be reached! @@ -241,10 +239,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var engineSpeedOverMin = tcOperatingPoint.InAngularVelocity.IsGreater(minEngineSpeed); // todo mk-2016-12-19: calculate accelerationReachable with param TCCaccMin: acc > min(driver-demand-acc, TCCaccMin) - //var engineCanSupplyPower = DataBus.EngineStationaryFullPower(tcOperatingPoint.InAngularVelocity) - // .IsGreater(0.7 * DataBus.EngineStationaryFullPower(inAngularVelocity)); - var minAccelerationReachable = true; + var reachableAcceleration = EstimateAccelerationForGear(gear + 1, outAngularVelocity); + var minAcceleration = VectoMath.Min(ModelData.TorqueConverterData.CCUpshiftMinAcceleration, + DataBus.DriverAcceleration); + var minAccelerationReachable = reachableAcceleration.IsGreaterOrEqual(minAcceleration); if (shiftTimeReached && engineSpeedOverMin && minAccelerationReachable) { Upshift(absTime, gear); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 9de62b6f48..381123158e 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -179,11 +179,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.OperationMode = EngineOperationMode.Stopped; } - var avgEngineSpeed = (PreviousState.EngineSpeed + angularVelocity) / 2.0; var fullDragTorque = ModelData.FullLoadCurve.DragLoadStationaryTorque(avgEngineSpeed); - var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt); + var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt, dryRun); var dynamicFullLoadTorque = dynamicFullLoadPower / avgEngineSpeed; var inertiaTorqueLoss = Formulas.InertiaPower(angularVelocity, PreviousState.EngineSpeed, ModelData.Inertia, dt) / @@ -423,7 +422,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl /// <summary> /// computes full load power from gear [-], angularVelocity [rad/s] and dt [s]. /// </summary> - protected Watt ComputeFullLoadPower(PerSecond angularVelocity, Second dt) + protected Watt ComputeFullLoadPower(PerSecond angularVelocity, Second dt, bool dryRun) { if (dt <= 0) { throw new VectoException("ComputeFullLoadPower cannot compute for simulation interval length 0."); @@ -437,11 +436,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (PT1Disabled || PreviousState.EnginePower.IsGreaterOrEqual(stationaryFullLoadPower)) { dynFullPowerCalculated = stationaryFullLoadPower; } else { - var pt1 = ModelData.FullLoadCurve.PT1(angularVelocity).Value(); - var powerRatio = (PreviousState.EnginePower / stationaryFullLoadPower).Value(); - var tStarPrev = pt1 * Math.Log(1.0 / (1 - powerRatio), Math.E).SI<Second>(); - var tStar = tStarPrev + PreviousState.dt; - dynFullPowerCalculated = stationaryFullLoadPower * (1 - Math.Exp((-tStar / pt1).Value())); + try { + var pt1 = ModelData.FullLoadCurve.PT1(angularVelocity).Value(); + var powerRatio = (PreviousState.EnginePower / stationaryFullLoadPower).Value(); + var tStarPrev = pt1 * Math.Log(1.0 / (1 - powerRatio), Math.E).SI<Second>(); + var tStar = tStarPrev + PreviousState.dt; + dynFullPowerCalculated = stationaryFullLoadPower * (1 - Math.Exp((-tStar / pt1).Value())); + } catch (VectoException e) { + Log.Warn("PT1 calculation failed (dryRun: {0}): {1}", dryRun, e.Message); + if (dryRun) { + dynFullPowerCalculated = stationaryFullLoadPower; + } else { + throw; + } + } + dynFullPowerCalculated = VectoMath.Max(PreviousState.EnginePower, dynFullPowerCalculated); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index 8155ceed76..7f87ca2ba0 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -474,7 +474,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl operatingPoint.SimulationInterval, operatingPoint.Acceleration, DataBus.BrakePower); if (DataBus.BrakePower < 0) { - var overload = new ResponseOverload { Source = this, BrakePower = DataBus.BrakePower, Acceleration = operatingPoint.Acceleration}; + var overload = new ResponseOverload { + Source = this, + BrakePower = DataBus.BrakePower, + Acceleration = operatingPoint.Acceleration + }; DataBus.BrakePower = 0.SI<Watt>(); return overload; } @@ -644,26 +648,26 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return actionRoll ? r.GearboxPowerRequest : (coastingOrRoll ? r.DeltaDragLoad : r.DeltaFullLoad); }, evaluateFunction: - acc => { - // calculate new time interval only when vehiclespeed and acceleration are != 0 - // else: use same timeinterval as before. - if (!(acc.IsEqual(0) && DataBus.VehicleSpeed.IsEqual(0))) { - var tmp = ComputeTimeInterval(acc, ds); - if (tmp.SimulationInterval.IsEqual(0.SI<Second>(), 1e-9.SI<Second>())) { - throw new VectoSearchAbortedException( - "next TimeInterval is 0. a: {0}, v: {1}, dt: {2}", acc, - DataBus.VehicleSpeed, tmp.SimulationInterval); - } - retVal.Acceleration = tmp.Acceleration; - retVal.SimulationInterval = tmp.SimulationInterval; - retVal.SimulationDistance = tmp.SimulationDistance; + acc => { + // calculate new time interval only when vehiclespeed and acceleration are != 0 + // else: use same timeinterval as before. + if (!(acc.IsEqual(0) && DataBus.VehicleSpeed.IsEqual(0))) { + var tmp = ComputeTimeInterval(acc, ds); + if (tmp.SimulationInterval.IsEqual(0.SI<Second>(), 1e-9.SI<Second>())) { + throw new VectoSearchAbortedException( + "next TimeInterval is 0. a: {0}, v: {1}, dt: {2}", acc, + DataBus.VehicleSpeed, tmp.SimulationInterval); } - IterationStatistics.Increment(this, "SearchOperatingPoint"); - DriverAcceleration = acc; - var response = NextComponent.Request(absTime, retVal.SimulationInterval, acc, gradient, true); - response.OperatingPoint = retVal; - return response; - }, + retVal.Acceleration = tmp.Acceleration; + retVal.SimulationInterval = tmp.SimulationInterval; + retVal.SimulationDistance = tmp.SimulationDistance; + } + IterationStatistics.Increment(this, "SearchOperatingPoint"); + DriverAcceleration = acc; + var response = NextComponent.Request(absTime, retVal.SimulationInterval, acc, gradient, true); + response.OperatingPoint = retVal; + return response; + }, criterion: response => { var r = (ResponseDryRun)response; delta = actionRoll @@ -672,14 +676,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return delta.Value(); }, abortCriterion: - (response, cnt) => { - var r = (ResponseDryRun)response; - if (r == null) { - return false; - } + (response, cnt) => { + var r = (ResponseDryRun)response; + if (r == null) { + return false; + } - return !actionRoll && !ds.IsEqual(r.OperatingPoint.SimulationDistance); - }); + return !actionRoll && !ds.IsEqual(r.OperatingPoint.SimulationDistance); + }); } catch (VectoSearchAbortedException) { // search aborted, try to go ahead with the last acceleration } catch (Exception) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs index ed1dad20bd..89c555d9f2 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/EngineOnlyCombustionEngine.cs @@ -54,7 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.dt = dt; CurrentState.EngineSpeed = angularVelocity; CurrentState.EngineTorqueOut = torque; -// var requestedEnginePower = ComputeRequestedEnginePower(absTime, dt, torque, angularVelocity); + // var requestedEnginePower = ComputeRequestedEnginePower(absTime, dt, torque, angularVelocity); var avgEngineSpeed = (PreviousState.EngineSpeed + CurrentState.EngineSpeed) / 2.0; @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl CurrentState.EngineTorque = totalTorqueDemand; CurrentState.FullDragTorque = ModelData.FullLoadCurve.DragLoadStationaryTorque(avgEngineSpeed); - var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt); + var dynamicFullLoadPower = ComputeFullLoadPower(avgEngineSpeed, dt, dryRun); CurrentState.DynamicFullLoadTorque = dynamicFullLoadPower / avgEngineSpeed; ValidatePowerDemand(totalTorqueDemand); @@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // = requestedEnginePower; //todo + _currentState.EnginePowerLoss; CurrentState.EngineTorque = CurrentState.EnginePower / CurrentState.EngineSpeed; - return new ResponseSuccess() { Source = this }; + return new ResponseSuccess() { Source = this }; } protected NewtonMeter LimitEnginePower(NewtonMeter requestedEngineTorque, PerSecond avgEngineSpeed, Second AbsTime) diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index c0da5d8378..23f4b2a980 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -151,6 +151,7 @@ <Compile Include="Models\SimulationComponent\Impl\AbstractGearbox.cs" /> <Compile Include="Models\SimulationComponent\Impl\ATGearbox.cs" /> <Compile Include="Models\SimulationComponent\Impl\ATShiftStrategy.cs" /> + <Compile Include="Models\SimulationComponent\Impl\BaseShiftStrategy.cs" /> <Compile Include="Models\SimulationComponent\Impl\MeasuredSpeedDrivingCycle.cs" /> <Compile Include="Models\SimulationComponent\Impl\PTOCycleController.cs" /> <Compile Include="Models\SimulationComponent\Impl\PWheelCycle.cs" /> diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs index 818544f063..4ffa58902e 100644 --- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs @@ -54,9 +54,9 @@ namespace TUGraz.VectoCore.Tests.Integration { public class ATPowerTrain { - protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad(); + protected static readonly PerSecond MaxTcSpeed = 1500.RPMtoRad(); - public const string AccelerationFile = @"TestData\Components\Truck.vacc"; + public const string AccelerationFile = @"TestData\Components\Truck.vacc"; public const string EngineFile = @"TestData\Components\AT_GBX\Engine.veng"; //public const string AxleGearLossMap = @"TestData\Components\AT_GBX\Axle.vtlm"; //public const string GearboxIndirectLoss = @"TestData\Components\AT_GBX\Indirect Gear.vtlm"; @@ -156,7 +156,8 @@ namespace TUGraz.VectoCore.Tests.Integration PowershiftInertiaFactor = 0.7, TorqueConverterData = TorqueConverterDataReader.ReadFromFile(torqueConverterFile, 1000.RPMtoRad(), - MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1/ratios[0]) + MaxTcSpeed, ExecutionMode.Engineering, gbxType == GearboxType.ATSerial ? 1 : 1 / ratios[0], + DeclarationData.Gearbox.UpshiftMinAcceleration, DeclarationData.Gearbox.UpshiftMinAcceleration) }; } diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs index 4402c38c4e..1f3315b0e4 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/TorqueConverterDataTest.cs @@ -73,7 +73,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000", - tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, 1); + tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); // check input data Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9); @@ -123,7 +124,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData var ratio = 0.75; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000", - tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, ratio); + tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Declaration, ratio, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); // check input data Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9); @@ -161,7 +163,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000", - tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); // check input data Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9); @@ -209,7 +212,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio, MP1000", - tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), 1600.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); // check input data Assert.AreEqual(1.8, tqData.TorqueConverterEntries[0].TorqueRatio, 1e-9); @@ -220,7 +224,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData Assert.AreEqual(188.90, tqData.TorqueConverterEntries[9].Torque.Value(), 1e-9); Assert.AreEqual(0.9, tqData.TorqueConverterEntries[9].SpeedRatio, 1e-9); - Assert.AreEqual(0.95, tqData.TorqueConverterEntries[10].TorqueRatio, 1e-9); Assert.AreEqual(0, tqData.TorqueConverterEntries[10].Torque.Value(), 1e-9); Assert.AreEqual(1, tqData.TorqueConverterEntries[10].SpeedRatio, 1e-9); @@ -266,7 +269,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); var outAngularSpeed = nOut.RPMtoRad(); var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed; @@ -302,15 +306,14 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1); - + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); var operatingPoint = tqData.FindOperatingPointForward(tqIn.SI<NewtonMeter>(), nIn.RPMtoRad(), null); Assert.AreEqual(operatingPoint.InTorque.Value(), tqIn, 1e-6); Assert.AreEqual(operatingPoint.InAngularVelocity.Value(), nIn.RPMtoRad().Value(), 1e-6); - var resultList = tqData.FindOperatingPoint(operatingPoint.OutTorque, operatingPoint.OutAngularVelocity, 0.SI<PerSecond>()); Assert.AreEqual(1, resultList.Count); @@ -349,7 +352,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), tqLimit.RPMtoRad(), ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); foreach (var entry in testData) { var torqueTCOut = entry.Item1.SI<NewtonMeter>(); @@ -360,7 +364,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData } } - [Test, TestCase(10, 110), TestCase(20, 130), @@ -395,7 +398,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); var outAngularSpeed = nOut.RPMtoRad(); var outTorque = (Pout * 1000).SI<Watt>() / outAngularSpeed; @@ -406,7 +410,6 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData Assert.IsTrue(result.InAngularVelocity.Value() > tqLimit.Value()); } - [TestCase()] public void TestForwardBackward() { @@ -455,10 +458,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData }; var tqData = TorqueConverterDataReader.ReadFromStream(InputDataHelper.InputDataAsStream("Speed Ratio, Torque Ratio,MP1000", - tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1); + tqInput), 1000.RPMtoRad(), tqLimit, ExecutionMode.Engineering, 1, 0.1.SI<MeterPerSquareSecond>(), + 0.1.SI<MeterPerSquareSecond>()); var operatingPoint = tqData.FindOperatingPointForPowerDemand(20000.SI<Watt>(), 113.5.SI<PerSecond>(), - 1200.RPMtoRad(), 4.SI<KilogramSquareMeter>(), 0.5.SI<Second>(), 20000.SI<Watt>()); + 1200.RPMtoRad(), 4.SI<KilogramSquareMeter>(), 0.5.SI<Second>(), 20000.SI<Watt>()); var tmp = tqData.FindOperatingPoint(operatingPoint.OutTorque, operatingPoint.OutAngularVelocity, 0.RPMtoRad()); var backward = tmp.First(); -- GitLab