diff --git a/VECTO/GUI/IEPCForm.Designer.vb b/VECTO/GUI/IEPCForm.Designer.vb index 3be9c340e4a583355b846dc01cd22ae8d4655cef..9c5b42f476ff730368793adb5d5860a18b5cf9d5 100644 --- a/VECTO/GUI/IEPCForm.Designer.vb +++ b/VECTO/GUI/IEPCForm.Designer.vb @@ -178,7 +178,7 @@ Partial Class IEPCForm ' Me.btFLCurveFile1.Anchor = System.Windows.Forms.AnchorStyles.None Me.btFLCurveFile1.Image = CType(resources.GetObject("btFLCurveFile1.Image"),System.Drawing.Image) - Me.btFLCurveFile1.Location = New System.Drawing.Point(573, 1) + Me.btFLCurveFile1.Location = New System.Drawing.Point(630, 1) Me.btFLCurveFile1.Margin = New System.Windows.Forms.Padding(0) Me.btFLCurveFile1.Name = "btFLCurveFile1" Me.btFLCurveFile1.Size = New System.Drawing.Size(36, 37) @@ -188,10 +188,10 @@ Partial Class IEPCForm 'tbThermalOverload ' Me.tbThermalOverload.Anchor = System.Windows.Forms.AnchorStyles.Left - Me.tbThermalOverload.Location = New System.Drawing.Point(237, 5) + Me.tbThermalOverload.Location = New System.Drawing.Point(317, 5) Me.tbThermalOverload.Margin = New System.Windows.Forms.Padding(45, 5, 4, 5) Me.tbThermalOverload.Name = "tbThermalOverload" - Me.tbThermalOverload.Size = New System.Drawing.Size(82, 20) + Me.tbThermalOverload.Size = New System.Drawing.Size(82, 26) Me.tbThermalOverload.TabIndex = 3 ' 'Label52 @@ -201,7 +201,7 @@ Partial Class IEPCForm Me.Label52.Location = New System.Drawing.Point(4, 8) Me.Label52.Margin = New System.Windows.Forms.Padding(4, 0, 15, 0) Me.Label52.Name = "Label52" - Me.Label52.Size = New System.Drawing.Size(173, 13) + Me.Label52.Size = New System.Drawing.Size(253, 20) Me.Label52.TabIndex = 50 Me.Label52.Text = "Thermal Overload Recovery Factor" ' @@ -212,7 +212,7 @@ Partial Class IEPCForm Me.Label48.Location = New System.Drawing.Point(4, 8) Me.Label48.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label48.Name = "Label48" - Me.Label48.Size = New System.Drawing.Size(207, 13) + Me.Label48.Size = New System.Drawing.Size(304, 20) Me.Label48.TabIndex = 48 Me.Label48.Text = "Nr of Design Type Wheel Motor Measured" ' @@ -220,10 +220,10 @@ Partial Class IEPCForm ' Me.tbNumberOfDesignTypeWheelMotor.Anchor = System.Windows.Forms.AnchorStyles.Left Me.tbNumberOfDesignTypeWheelMotor.Enabled = false - Me.tbNumberOfDesignTypeWheelMotor.Location = New System.Drawing.Point(219, 5) + Me.tbNumberOfDesignTypeWheelMotor.Location = New System.Drawing.Point(316, 5) Me.tbNumberOfDesignTypeWheelMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbNumberOfDesignTypeWheelMotor.Name = "tbNumberOfDesignTypeWheelMotor" - Me.tbNumberOfDesignTypeWheelMotor.Size = New System.Drawing.Size(43, 20) + Me.tbNumberOfDesignTypeWheelMotor.Size = New System.Drawing.Size(43, 26) Me.tbNumberOfDesignTypeWheelMotor.TabIndex = 5 ' 'Label51 @@ -233,17 +233,17 @@ Partial Class IEPCForm Me.Label51.Location = New System.Drawing.Point(4, 8) Me.Label51.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label51.Name = "Label51" - Me.Label51.Size = New System.Drawing.Size(36, 13) + Me.Label51.Size = New System.Drawing.Size(54, 20) Me.Label51.TabIndex = 45 Me.Label51.Text = "Inertia" ' 'tbInertia ' Me.tbInertia.Anchor = System.Windows.Forms.AnchorStyles.Left - Me.tbInertia.Location = New System.Drawing.Point(48, 5) + Me.tbInertia.Location = New System.Drawing.Point(66, 5) Me.tbInertia.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbInertia.Name = "tbInertia" - Me.tbInertia.Size = New System.Drawing.Size(84, 20) + Me.tbInertia.Size = New System.Drawing.Size(84, 26) Me.tbInertia.TabIndex = 2 ' 'Label49 @@ -253,17 +253,17 @@ Partial Class IEPCForm Me.Label49.Location = New System.Drawing.Point(4, 8) Me.Label49.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label49.Name = "Label49" - Me.Label49.Size = New System.Drawing.Size(36, 13) + Me.Label49.Size = New System.Drawing.Size(52, 20) Me.Label49.TabIndex = 43 Me.Label49.Text = "Model" ' 'tbModel ' Me.tbModel.Anchor = System.Windows.Forms.AnchorStyles.Left - Me.tbModel.Location = New System.Drawing.Point(48, 5) + Me.tbModel.Location = New System.Drawing.Point(64, 5) Me.tbModel.Margin = New System.Windows.Forms.Padding(4, 5, 0, 5) Me.tbModel.Name = "tbModel" - Me.tbModel.Size = New System.Drawing.Size(289, 20) + Me.tbModel.Size = New System.Drawing.Size(289, 26) Me.tbModel.TabIndex = 1 ' 'tcVoltageLevels @@ -309,26 +309,26 @@ Partial Class IEPCForm ' Me.Label44.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label44.AutoSize = true - Me.Label44.Location = New System.Drawing.Point(21, 13) + Me.Label44.Location = New System.Drawing.Point(21, 9) Me.Label44.Margin = New System.Windows.Forms.Padding(21, 0, 0, 0) Me.Label44.Name = "Label44" - Me.Label44.Size = New System.Drawing.Size(125, 13) + Me.Label44.Size = New System.Drawing.Size(182, 20) Me.Label44.TabIndex = 59 Me.Label44.Text = "Full Load Curve (.viepcp)" ' 'tbFLCurve1 ' Me.tbFLCurve1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbFLCurve1.Location = New System.Drawing.Point(150, 9) + Me.tbFLCurve1.Location = New System.Drawing.Point(207, 6) Me.tbFLCurve1.Margin = New System.Windows.Forms.Padding(4, 5, 9, 5) Me.tbFLCurve1.Name = "tbFLCurve1" - Me.tbFLCurve1.Size = New System.Drawing.Size(414, 20) + Me.tbFLCurve1.Size = New System.Drawing.Size(414, 26) Me.tbFLCurve1.TabIndex = 14 ' 'btShowFLCurve1 ' Me.btShowFLCurve1.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btShowFLCurve1.Location = New System.Drawing.Point(609, 2) + Me.btShowFLCurve1.Location = New System.Drawing.Point(666, 2) Me.btShowFLCurve1.Margin = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.btShowFLCurve1.Name = "btShowFLCurve1" Me.btShowFLCurve1.Size = New System.Drawing.Size(36, 37) @@ -378,10 +378,10 @@ Partial Class IEPCForm ' Me.Label11.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label11.AutoSize = true - Me.Label11.Location = New System.Drawing.Point(311, 56) + Me.Label11.Location = New System.Drawing.Point(305, 53) Me.Label11.Margin = New System.Windows.Forms.Padding(0) Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(29, 13) + Me.Label11.Size = New System.Drawing.Size(41, 20) Me.Label11.TabIndex = 63 Me.Label11.Text = "[Nm]" ' @@ -389,10 +389,10 @@ Partial Class IEPCForm ' Me.Label4.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label4.AutoSize = true - Me.Label4.Location = New System.Drawing.Point(315, 14) + Me.Label4.Location = New System.Drawing.Point(311, 11) Me.Label4.Margin = New System.Windows.Forms.Padding(0) Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(20, 13) + Me.Label4.Size = New System.Drawing.Size(28, 20) Me.Label4.TabIndex = 62 Me.Label4.Text = "[V]" ' @@ -400,10 +400,10 @@ Partial Class IEPCForm ' Me.Label13.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label13.AutoSize = true - Me.Label13.Location = New System.Drawing.Point(640, 14) + Me.Label13.Location = New System.Drawing.Point(634, 11) Me.Label13.Margin = New System.Windows.Forms.Padding(0) Me.Label13.Name = "Label13" - Me.Label13.Size = New System.Drawing.Size(30, 13) + Me.Label13.Size = New System.Drawing.Size(42, 20) Me.Label13.TabIndex = 65 Me.Label13.Text = "[sec]" ' @@ -411,10 +411,10 @@ Partial Class IEPCForm ' Me.Label43.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label43.AutoSize = true - Me.Label43.Location = New System.Drawing.Point(460, 14) + Me.Label43.Location = New System.Drawing.Point(426, 11) Me.Label43.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label43.Name = "Label43" - Me.Label43.Size = New System.Drawing.Size(76, 13) + Me.Label43.Size = New System.Drawing.Size(110, 20) Me.Label43.TabIndex = 11 Me.Label43.Text = "Overload Time" ' @@ -422,39 +422,39 @@ Partial Class IEPCForm ' Me.Label37.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label37.AutoSize = true - Me.Label37.Location = New System.Drawing.Point(163, 14) + Me.Label37.Location = New System.Drawing.Point(142, 11) Me.Label37.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label37.Name = "Label37" - Me.Label37.Size = New System.Drawing.Size(43, 13) + Me.Label37.Size = New System.Drawing.Size(64, 20) Me.Label37.TabIndex = 1 Me.Label37.Text = "Voltage" ' 'tbOverloadTime1 ' Me.tbOverloadTime1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbOverloadTime1.Location = New System.Drawing.Point(545, 11) + Me.tbOverloadTime1.Location = New System.Drawing.Point(545, 8) Me.tbOverloadTime1.Margin = New System.Windows.Forms.Padding(0) Me.tbOverloadTime1.Name = "tbOverloadTime1" - Me.tbOverloadTime1.Size = New System.Drawing.Size(82, 20) + Me.tbOverloadTime1.Size = New System.Drawing.Size(82, 26) Me.tbOverloadTime1.TabIndex = 11 ' 'tbVoltage1 ' Me.tbVoltage1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbVoltage1.Location = New System.Drawing.Point(215, 11) + Me.tbVoltage1.Location = New System.Drawing.Point(215, 8) Me.tbVoltage1.Margin = New System.Windows.Forms.Padding(0) Me.tbVoltage1.Name = "tbVoltage1" - Me.tbVoltage1.Size = New System.Drawing.Size(82, 20) + Me.tbVoltage1.Size = New System.Drawing.Size(82, 26) Me.tbVoltage1.TabIndex = 8 ' 'Label39 ' Me.Label39.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label39.AutoSize = true - Me.Label39.Location = New System.Drawing.Point(109, 56) + Me.Label39.Location = New System.Drawing.Point(62, 53) Me.Label39.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label39.Name = "Label39" - Me.Label39.Size = New System.Drawing.Size(97, 13) + Me.Label39.Size = New System.Drawing.Size(144, 20) Me.Label39.TabIndex = 3 Me.Label39.Text = "Continuous Torque" ' @@ -462,39 +462,39 @@ Partial Class IEPCForm ' Me.Label1.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label1.AutoSize = true - Me.Label1.Location = New System.Drawing.Point(75, 98) + Me.Label1.Location = New System.Drawing.Point(11, 95) Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(131, 13) + Me.Label1.Size = New System.Drawing.Size(195, 20) Me.Label1.TabIndex = 6 Me.Label1.Text = "Continuous Torque Speed" ' 'tbContinousTorque1 ' Me.tbContinousTorque1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbContinousTorque1.Location = New System.Drawing.Point(215, 53) + Me.tbContinousTorque1.Location = New System.Drawing.Point(215, 50) Me.tbContinousTorque1.Margin = New System.Windows.Forms.Padding(0) Me.tbContinousTorque1.Name = "tbContinousTorque1" - Me.tbContinousTorque1.Size = New System.Drawing.Size(82, 20) + Me.tbContinousTorque1.Size = New System.Drawing.Size(82, 26) Me.tbContinousTorque1.TabIndex = 9 ' 'tbContinousTorqueSpeed1 ' Me.tbContinousTorqueSpeed1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbContinousTorqueSpeed1.Location = New System.Drawing.Point(215, 95) + Me.tbContinousTorqueSpeed1.Location = New System.Drawing.Point(215, 92) Me.tbContinousTorqueSpeed1.Margin = New System.Windows.Forms.Padding(0) Me.tbContinousTorqueSpeed1.Name = "tbContinousTorqueSpeed1" - Me.tbContinousTorqueSpeed1.Size = New System.Drawing.Size(82, 20) + Me.tbContinousTorqueSpeed1.Size = New System.Drawing.Size(82, 26) Me.tbContinousTorqueSpeed1.TabIndex = 10 ' 'Label15 ' Me.Label15.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label15.AutoSize = true - Me.Label15.Location = New System.Drawing.Point(310, 98) + Me.Label15.Location = New System.Drawing.Point(303, 95) Me.Label15.Margin = New System.Windows.Forms.Padding(0) Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(30, 13) + Me.Label15.Size = New System.Drawing.Size(44, 20) Me.Label15.TabIndex = 67 Me.Label15.Text = "[rpm]" ' @@ -502,10 +502,10 @@ Partial Class IEPCForm ' Me.Label42.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label42.AutoSize = true - Me.Label42.Location = New System.Drawing.Point(415, 98) + Me.Label42.Location = New System.Drawing.Point(359, 95) Me.Label42.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label42.Name = "Label42" - Me.Label42.Size = New System.Drawing.Size(121, 13) + Me.Label42.Size = New System.Drawing.Size(177, 20) Me.Label42.TabIndex = 9 Me.Label42.Text = "Overload Torque Speed" ' @@ -513,50 +513,50 @@ Partial Class IEPCForm ' Me.Label14.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label14.AutoSize = true - Me.Label14.Location = New System.Drawing.Point(640, 98) + Me.Label14.Location = New System.Drawing.Point(633, 95) Me.Label14.Margin = New System.Windows.Forms.Padding(0) Me.Label14.Name = "Label14" - Me.Label14.Size = New System.Drawing.Size(30, 13) + Me.Label14.Size = New System.Drawing.Size(44, 20) Me.Label14.TabIndex = 66 Me.Label14.Text = "[rpm]" ' 'tboverloadTorqueSpeed1 ' Me.tboverloadTorqueSpeed1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tboverloadTorqueSpeed1.Location = New System.Drawing.Point(545, 95) + Me.tboverloadTorqueSpeed1.Location = New System.Drawing.Point(545, 92) Me.tboverloadTorqueSpeed1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tboverloadTorqueSpeed1.Name = "tboverloadTorqueSpeed1" - Me.tboverloadTorqueSpeed1.Size = New System.Drawing.Size(82, 20) + Me.tboverloadTorqueSpeed1.Size = New System.Drawing.Size(82, 26) Me.tboverloadTorqueSpeed1.TabIndex = 13 ' 'Label41 ' Me.Label41.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label41.AutoSize = true - Me.Label41.Location = New System.Drawing.Point(449, 56) + Me.Label41.Location = New System.Drawing.Point(410, 53) Me.Label41.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label41.Name = "Label41" - Me.Label41.Size = New System.Drawing.Size(87, 13) + Me.Label41.Size = New System.Drawing.Size(126, 20) Me.Label41.TabIndex = 7 Me.Label41.Text = "Overload Torque" ' 'tbOverloadTorque1 ' Me.tbOverloadTorque1.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbOverloadTorque1.Location = New System.Drawing.Point(545, 53) + Me.tbOverloadTorque1.Location = New System.Drawing.Point(545, 50) Me.tbOverloadTorque1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbOverloadTorque1.Name = "tbOverloadTorque1" - Me.tbOverloadTorque1.Size = New System.Drawing.Size(82, 20) + Me.tbOverloadTorque1.Size = New System.Drawing.Size(82, 26) Me.tbOverloadTorque1.TabIndex = 12 ' 'Label12 ' Me.Label12.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label12.AutoSize = true - Me.Label12.Location = New System.Drawing.Point(641, 56) + Me.Label12.Location = New System.Drawing.Point(635, 53) Me.Label12.Margin = New System.Windows.Forms.Padding(0) Me.Label12.Name = "Label12" - Me.Label12.Size = New System.Drawing.Size(29, 13) + Me.Label12.Size = New System.Drawing.Size(41, 20) Me.Label12.TabIndex = 64 Me.Label12.Text = "[Nm]" ' @@ -595,10 +595,10 @@ Partial Class IEPCForm ' Me.Label47.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label47.AutoSize = true - Me.Label47.Location = New System.Drawing.Point(338, 195) + Me.Label47.Location = New System.Drawing.Point(286, 195) Me.Label47.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label47.Name = "Label47" - Me.Label47.Size = New System.Drawing.Size(106, 13) + Me.Label47.Size = New System.Drawing.Size(158, 20) Me.Label47.TabIndex = 6 Me.Label47.Text = "(Double-Click to Edit)" ' @@ -681,10 +681,10 @@ Partial Class IEPCForm ' Me.Label5.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label5.AutoSize = true - Me.Label5.Location = New System.Drawing.Point(338, 195) + Me.Label5.Location = New System.Drawing.Point(286, 195) Me.Label5.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(106, 13) + Me.Label5.Size = New System.Drawing.Size(158, 20) Me.Label5.TabIndex = 6 Me.Label5.Text = "(Double-Click to Edit)" ' @@ -734,27 +734,27 @@ Partial Class IEPCForm ' Me.Label28.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label28.AutoSize = true - Me.Label28.Location = New System.Drawing.Point(21, 13) + Me.Label28.Location = New System.Drawing.Point(21, 9) Me.Label28.Margin = New System.Windows.Forms.Padding(21, 0, 0, 0) Me.Label28.Name = "Label28" - Me.Label28.Size = New System.Drawing.Size(125, 13) + Me.Label28.Size = New System.Drawing.Size(182, 20) Me.Label28.TabIndex = 59 Me.Label28.Text = "Full Load Curve (.viepcp)" ' 'tbFLCurve2 ' Me.tbFLCurve2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbFLCurve2.Location = New System.Drawing.Point(150, 9) + Me.tbFLCurve2.Location = New System.Drawing.Point(207, 6) Me.tbFLCurve2.Margin = New System.Windows.Forms.Padding(4, 5, 9, 5) Me.tbFLCurve2.Name = "tbFLCurve2" - Me.tbFLCurve2.Size = New System.Drawing.Size(414, 20) + Me.tbFLCurve2.Size = New System.Drawing.Size(414, 26) Me.tbFLCurve2.TabIndex = 23 ' 'btFLCurveFile2 ' Me.btFLCurveFile2.Anchor = System.Windows.Forms.AnchorStyles.None Me.btFLCurveFile2.Image = CType(resources.GetObject("btFLCurveFile2.Image"),System.Drawing.Image) - Me.btFLCurveFile2.Location = New System.Drawing.Point(573, 1) + Me.btFLCurveFile2.Location = New System.Drawing.Point(630, 1) Me.btFLCurveFile2.Margin = New System.Windows.Forms.Padding(0) Me.btFLCurveFile2.Name = "btFLCurveFile2" Me.btFLCurveFile2.Size = New System.Drawing.Size(36, 37) @@ -764,7 +764,7 @@ Partial Class IEPCForm 'btShowFLCurve2 ' Me.btShowFLCurve2.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btShowFLCurve2.Location = New System.Drawing.Point(609, 2) + Me.btShowFLCurve2.Location = New System.Drawing.Point(666, 2) Me.btShowFLCurve2.Margin = New System.Windows.Forms.Padding(0, 2, 0, 0) Me.btShowFLCurve2.Name = "btShowFLCurve2" Me.btShowFLCurve2.Size = New System.Drawing.Size(36, 37) @@ -815,10 +815,10 @@ Partial Class IEPCForm ' Me.Label17.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label17.AutoSize = true - Me.Label17.Location = New System.Drawing.Point(311, 56) + Me.Label17.Location = New System.Drawing.Point(305, 53) Me.Label17.Margin = New System.Windows.Forms.Padding(0) Me.Label17.Name = "Label17" - Me.Label17.Size = New System.Drawing.Size(29, 13) + Me.Label17.Size = New System.Drawing.Size(41, 20) Me.Label17.TabIndex = 63 Me.Label17.Text = "[Nm]" ' @@ -826,10 +826,10 @@ Partial Class IEPCForm ' Me.Label18.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label18.AutoSize = true - Me.Label18.Location = New System.Drawing.Point(315, 14) + Me.Label18.Location = New System.Drawing.Point(311, 11) Me.Label18.Margin = New System.Windows.Forms.Padding(0) Me.Label18.Name = "Label18" - Me.Label18.Size = New System.Drawing.Size(20, 13) + Me.Label18.Size = New System.Drawing.Size(28, 20) Me.Label18.TabIndex = 62 Me.Label18.Text = "[V]" ' @@ -837,10 +837,10 @@ Partial Class IEPCForm ' Me.Label26.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label26.AutoSize = true - Me.Label26.Location = New System.Drawing.Point(640, 14) + Me.Label26.Location = New System.Drawing.Point(634, 11) Me.Label26.Margin = New System.Windows.Forms.Padding(0) Me.Label26.Name = "Label26" - Me.Label26.Size = New System.Drawing.Size(30, 13) + Me.Label26.Size = New System.Drawing.Size(42, 20) Me.Label26.TabIndex = 65 Me.Label26.Text = "[sec]" ' @@ -848,50 +848,50 @@ Partial Class IEPCForm ' Me.Label19.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label19.AutoSize = true - Me.Label19.Location = New System.Drawing.Point(163, 14) + Me.Label19.Location = New System.Drawing.Point(142, 11) Me.Label19.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label19.Name = "Label19" - Me.Label19.Size = New System.Drawing.Size(43, 13) + Me.Label19.Size = New System.Drawing.Size(64, 20) Me.Label19.TabIndex = 1 Me.Label19.Text = "Voltage" ' 'tbOverloadTime2 ' Me.tbOverloadTime2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbOverloadTime2.Location = New System.Drawing.Point(545, 11) + Me.tbOverloadTime2.Location = New System.Drawing.Point(545, 8) Me.tbOverloadTime2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbOverloadTime2.Name = "tbOverloadTime2" - Me.tbOverloadTime2.Size = New System.Drawing.Size(82, 20) + Me.tbOverloadTime2.Size = New System.Drawing.Size(82, 26) Me.tbOverloadTime2.TabIndex = 20 ' 'Label24 ' Me.Label24.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label24.AutoSize = true - Me.Label24.Location = New System.Drawing.Point(460, 14) + Me.Label24.Location = New System.Drawing.Point(426, 11) Me.Label24.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label24.Name = "Label24" - Me.Label24.Size = New System.Drawing.Size(76, 13) + Me.Label24.Size = New System.Drawing.Size(110, 20) Me.Label24.TabIndex = 11 Me.Label24.Text = "Overload Time" ' 'tbVoltage2 ' Me.tbVoltage2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbVoltage2.Location = New System.Drawing.Point(215, 11) + Me.tbVoltage2.Location = New System.Drawing.Point(215, 8) Me.tbVoltage2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbVoltage2.Name = "tbVoltage2" - Me.tbVoltage2.Size = New System.Drawing.Size(82, 20) + Me.tbVoltage2.Size = New System.Drawing.Size(82, 26) Me.tbVoltage2.TabIndex = 17 ' 'Label20 ' Me.Label20.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label20.AutoSize = true - Me.Label20.Location = New System.Drawing.Point(109, 56) + Me.Label20.Location = New System.Drawing.Point(62, 53) Me.Label20.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(97, 13) + Me.Label20.Size = New System.Drawing.Size(144, 20) Me.Label20.TabIndex = 3 Me.Label20.Text = "Continuous Torque" ' @@ -899,39 +899,39 @@ Partial Class IEPCForm ' Me.Label21.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label21.AutoSize = true - Me.Label21.Location = New System.Drawing.Point(75, 98) + Me.Label21.Location = New System.Drawing.Point(11, 95) Me.Label21.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label21.Name = "Label21" - Me.Label21.Size = New System.Drawing.Size(131, 13) + Me.Label21.Size = New System.Drawing.Size(195, 20) Me.Label21.TabIndex = 6 Me.Label21.Text = "Continuous Torque Speed" ' 'tbContinousTorque2 ' Me.tbContinousTorque2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbContinousTorque2.Location = New System.Drawing.Point(215, 53) + Me.tbContinousTorque2.Location = New System.Drawing.Point(215, 50) Me.tbContinousTorque2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbContinousTorque2.Name = "tbContinousTorque2" - Me.tbContinousTorque2.Size = New System.Drawing.Size(82, 20) + Me.tbContinousTorque2.Size = New System.Drawing.Size(82, 26) Me.tbContinousTorque2.TabIndex = 18 ' 'tbContinousTorqueSpeed2 ' Me.tbContinousTorqueSpeed2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbContinousTorqueSpeed2.Location = New System.Drawing.Point(215, 95) + Me.tbContinousTorqueSpeed2.Location = New System.Drawing.Point(215, 92) Me.tbContinousTorqueSpeed2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbContinousTorqueSpeed2.Name = "tbContinousTorqueSpeed2" - Me.tbContinousTorqueSpeed2.Size = New System.Drawing.Size(82, 20) + Me.tbContinousTorqueSpeed2.Size = New System.Drawing.Size(82, 26) Me.tbContinousTorqueSpeed2.TabIndex = 19 ' 'Label27 ' Me.Label27.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label27.AutoSize = true - Me.Label27.Location = New System.Drawing.Point(310, 98) + Me.Label27.Location = New System.Drawing.Point(303, 95) Me.Label27.Margin = New System.Windows.Forms.Padding(0) Me.Label27.Name = "Label27" - Me.Label27.Size = New System.Drawing.Size(30, 13) + Me.Label27.Size = New System.Drawing.Size(44, 20) Me.Label27.TabIndex = 67 Me.Label27.Text = "[rpm]" ' @@ -939,30 +939,30 @@ Partial Class IEPCForm ' Me.Label23.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label23.AutoSize = true - Me.Label23.Location = New System.Drawing.Point(415, 98) + Me.Label23.Location = New System.Drawing.Point(359, 95) Me.Label23.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label23.Name = "Label23" - Me.Label23.Size = New System.Drawing.Size(121, 13) + Me.Label23.Size = New System.Drawing.Size(177, 20) Me.Label23.TabIndex = 9 Me.Label23.Text = "Overload Torque Speed" ' 'tbOverloadTorqueSpeed2 ' Me.tbOverloadTorqueSpeed2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbOverloadTorqueSpeed2.Location = New System.Drawing.Point(545, 95) + Me.tbOverloadTorqueSpeed2.Location = New System.Drawing.Point(545, 92) Me.tbOverloadTorqueSpeed2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbOverloadTorqueSpeed2.Name = "tbOverloadTorqueSpeed2" - Me.tbOverloadTorqueSpeed2.Size = New System.Drawing.Size(82, 20) + Me.tbOverloadTorqueSpeed2.Size = New System.Drawing.Size(82, 26) Me.tbOverloadTorqueSpeed2.TabIndex = 22 ' 'Label25 ' Me.Label25.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label25.AutoSize = true - Me.Label25.Location = New System.Drawing.Point(640, 98) + Me.Label25.Location = New System.Drawing.Point(633, 95) Me.Label25.Margin = New System.Windows.Forms.Padding(0) Me.Label25.Name = "Label25" - Me.Label25.Size = New System.Drawing.Size(30, 13) + Me.Label25.Size = New System.Drawing.Size(44, 20) Me.Label25.TabIndex = 66 Me.Label25.Text = "[rpm]" ' @@ -970,30 +970,30 @@ Partial Class IEPCForm ' Me.Label22.Anchor = System.Windows.Forms.AnchorStyles.Right Me.Label22.AutoSize = true - Me.Label22.Location = New System.Drawing.Point(449, 56) + Me.Label22.Location = New System.Drawing.Point(410, 53) Me.Label22.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label22.Name = "Label22" - Me.Label22.Size = New System.Drawing.Size(87, 13) + Me.Label22.Size = New System.Drawing.Size(126, 20) Me.Label22.TabIndex = 7 Me.Label22.Text = "Overload Torque" ' 'tbOverloadTorque2 ' Me.tbOverloadTorque2.Anchor = System.Windows.Forms.AnchorStyles.None - Me.tbOverloadTorque2.Location = New System.Drawing.Point(545, 53) + Me.tbOverloadTorque2.Location = New System.Drawing.Point(545, 50) Me.tbOverloadTorque2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbOverloadTorque2.Name = "tbOverloadTorque2" - Me.tbOverloadTorque2.Size = New System.Drawing.Size(82, 20) + Me.tbOverloadTorque2.Size = New System.Drawing.Size(82, 26) Me.tbOverloadTorque2.TabIndex = 21 ' 'Label16 ' Me.Label16.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label16.AutoSize = true - Me.Label16.Location = New System.Drawing.Point(641, 56) + Me.Label16.Location = New System.Drawing.Point(635, 53) Me.Label16.Margin = New System.Windows.Forms.Padding(0) Me.Label16.Name = "Label16" - Me.Label16.Size = New System.Drawing.Size(29, 13) + Me.Label16.Size = New System.Drawing.Size(41, 20) Me.Label16.TabIndex = 64 Me.Label16.Text = "[Nm]" ' @@ -1004,18 +1004,18 @@ Partial Class IEPCForm Me.Label3.Location = New System.Drawing.Point(4, 9) Me.Label3.Margin = New System.Windows.Forms.Padding(4, 9, 9, 9) Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(87, 9) + Me.Label3.Size = New System.Drawing.Size(191, 20) Me.Label3.TabIndex = 54 Me.Label3.Text = "Design Type Wheel Motor" ' 'cbDesignTypeWheelMotor ' - Me.cbDesignTypeWheelMotor.Anchor = System.Windows.Forms.AnchorStyles.None + Me.cbDesignTypeWheelMotor.Anchor = System.Windows.Forms.AnchorStyles.Right Me.cbDesignTypeWheelMotor.AutoSize = true - Me.cbDesignTypeWheelMotor.Location = New System.Drawing.Point(96, 6) - Me.cbDesignTypeWheelMotor.Margin = New System.Windows.Forms.Padding(0, 9, 4, 9) + Me.cbDesignTypeWheelMotor.Location = New System.Drawing.Point(274, 9) + Me.cbDesignTypeWheelMotor.Margin = New System.Windows.Forms.Padding(70, 9, 4, 9) Me.cbDesignTypeWheelMotor.Name = "cbDesignTypeWheelMotor" - Me.cbDesignTypeWheelMotor.Size = New System.Drawing.Size(15, 14) + Me.cbDesignTypeWheelMotor.Size = New System.Drawing.Size(22, 21) Me.cbDesignTypeWheelMotor.TabIndex = 4 Me.cbDesignTypeWheelMotor.UseVisualStyleBackColor = true ' @@ -1026,7 +1026,7 @@ Partial Class IEPCForm Me.Label2.Location = New System.Drawing.Point(4, 9) Me.Label2.Margin = New System.Windows.Forms.Padding(4, 9, 9, 9) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(101, 13) + Me.Label2.Size = New System.Drawing.Size(151, 20) Me.Label2.TabIndex = 53 Me.Label2.Text = "Differential Included" ' @@ -1034,10 +1034,10 @@ Partial Class IEPCForm ' Me.cbDifferentialIncluded.Anchor = System.Windows.Forms.AnchorStyles.Right Me.cbDifferentialIncluded.AutoSize = true - Me.cbDifferentialIncluded.Location = New System.Drawing.Point(234, 9) + Me.cbDifferentialIncluded.Location = New System.Drawing.Point(284, 9) Me.cbDifferentialIncluded.Margin = New System.Windows.Forms.Padding(120, 9, 4, 9) Me.cbDifferentialIncluded.Name = "cbDifferentialIncluded" - Me.cbDifferentialIncluded.Size = New System.Drawing.Size(15, 14) + Me.cbDifferentialIncluded.Size = New System.Drawing.Size(22, 21) Me.cbDifferentialIncluded.TabIndex = 6 Me.cbDifferentialIncluded.UseVisualStyleBackColor = true ' @@ -1106,10 +1106,10 @@ Partial Class IEPCForm ' Me.Label6.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label6.AutoSize = true - Me.Label6.Location = New System.Drawing.Point(340, 192) + Me.Label6.Location = New System.Drawing.Point(288, 192) Me.Label6.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(106, 13) + Me.Label6.Size = New System.Drawing.Size(158, 20) Me.Label6.TabIndex = 6 Me.Label6.Text = "(Double-Click to Edit)" ' @@ -1243,10 +1243,10 @@ Partial Class IEPCForm ' Me.Label7.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label7.AutoSize = true - Me.Label7.Location = New System.Drawing.Point(340, 192) + Me.Label7.Location = New System.Drawing.Point(288, 192) Me.Label7.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(106, 13) + Me.Label7.Size = New System.Drawing.Size(158, 20) Me.Label7.TabIndex = 6 Me.Label7.Text = "(Double-Click to Edit)" ' @@ -1257,8 +1257,7 @@ Partial Class IEPCForm 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.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0) - Me.ToolStrip1.Size = New System.Drawing.Size(1296, 31) + Me.ToolStrip1.Size = New System.Drawing.Size(1296, 38) Me.ToolStrip1.TabIndex = 63 Me.ToolStrip1.Text = "ToolStrip1" ' @@ -1268,7 +1267,7 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripBtNew.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtNew.Text = "ToolStripButton1" Me.ToolStripBtNew.ToolTipText = "New" ' @@ -1278,7 +1277,7 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripBtOpen.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtOpen.Text = "ToolStripButton1" Me.ToolStripBtOpen.ToolTipText = "Open..." ' @@ -1288,7 +1287,7 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripBtSave.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSave.Text = "ToolStripButton1" Me.ToolStripBtSave.ToolTipText = "Save" ' @@ -1298,14 +1297,14 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSaveAs.Text = "ToolStripButton1" Me.ToolStripBtSaveAs.ToolTipText = "Save As..." ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" - Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 31) + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 33) ' 'ToolStripBtSendTo ' @@ -1313,14 +1312,14 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSendTo.Text = "Send to Vehicle Editor" Me.ToolStripBtSendTo.ToolTipText = "Send to Vehicle Editor" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 31) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 33) ' 'ToolStripButton1 ' @@ -1328,7 +1327,7 @@ Partial Class IEPCForm 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(28, 28) + Me.ToolStripButton1.Size = New System.Drawing.Size(34, 28) Me.ToolStripButton1.Text = "Help" ' 'PictureBox1 @@ -1336,7 +1335,7 @@ Partial Class IEPCForm Me.PictureBox1.BackColor = System.Drawing.Color.White Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Top Me.PictureBox1.Image = Global.TUGraz.VECTO.My.Resources.Resources.VECTO_Mainform - Me.PictureBox1.Location = New System.Drawing.Point(0, 31) + Me.PictureBox1.Location = New System.Drawing.Point(0, 38) Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(1296, 62) @@ -1352,7 +1351,7 @@ Partial Class IEPCForm Me.lblTitle.Location = New System.Drawing.Point(171, 55) Me.lblTitle.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(68, 29) + Me.lblTitle.Size = New System.Drawing.Size(100, 40) Me.lblTitle.TabIndex = 65 Me.lblTitle.Text = "IEPC" ' @@ -1415,10 +1414,10 @@ Partial Class IEPCForm ' Me.Label9.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label9.AutoSize = true - Me.Label9.Location = New System.Drawing.Point(270, 8) + Me.Label9.Location = New System.Drawing.Point(367, 8) Me.Label9.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(16, 13) + Me.Label9.Size = New System.Drawing.Size(22, 20) Me.Label9.TabIndex = 66 Me.Label9.Text = "[-]" ' @@ -1437,10 +1436,10 @@ Partial Class IEPCForm ' Me.lblinertiaUnit.Anchor = System.Windows.Forms.AnchorStyles.None Me.lblinertiaUnit.AutoSize = true - Me.lblinertiaUnit.Location = New System.Drawing.Point(140, 8) + Me.lblinertiaUnit.Location = New System.Drawing.Point(158, 8) Me.lblinertiaUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblinertiaUnit.Name = "lblinertiaUnit" - Me.lblinertiaUnit.Size = New System.Drawing.Size(36, 13) + Me.lblinertiaUnit.Size = New System.Drawing.Size(52, 20) Me.lblinertiaUnit.TabIndex = 64 Me.lblinertiaUnit.Text = "[kgm²]" ' @@ -1469,10 +1468,10 @@ Partial Class IEPCForm ' Me.Label10.Anchor = System.Windows.Forms.AnchorStyles.None Me.Label10.AutoSize = true - Me.Label10.Location = New System.Drawing.Point(327, 8) + Me.Label10.Location = New System.Drawing.Point(407, 8) Me.Label10.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(16, 13) + Me.Label10.Size = New System.Drawing.Size(22, 20) Me.Label10.TabIndex = 67 Me.Label10.Text = "[-]" ' @@ -1480,10 +1479,10 @@ Partial Class IEPCForm ' Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 915) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 905) Me.StatusStrip1.Name = "StatusStrip1" Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0) - Me.StatusStrip1.Size = New System.Drawing.Size(1296, 22) + Me.StatusStrip1.Size = New System.Drawing.Size(1296, 32) Me.StatusStrip1.SizingGrip = false Me.StatusStrip1.TabIndex = 74 Me.StatusStrip1.Text = "StatusStrip1" @@ -1491,7 +1490,7 @@ Partial Class IEPCForm 'LbStatus ' Me.LbStatus.Name = "LbStatus" - Me.LbStatus.Size = New System.Drawing.Size(39, 17) + Me.LbStatus.Size = New System.Drawing.Size(60, 25) Me.LbStatus.Text = "Status" ' 'CmOpenFile @@ -1499,18 +1498,18 @@ Partial Class IEPCForm Me.CmOpenFile.ImageScalingSize = New System.Drawing.Size(24, 24) 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) + Me.CmOpenFile.Size = New System.Drawing.Size(203, 68) ' 'OpenWithToolStripMenuItem ' Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" - Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(202, 32) Me.OpenWithToolStripMenuItem.Text = "Open with ..." ' 'ShowInFolderToolStripMenuItem ' Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" - Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(202, 32) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' 'IEPCForm diff --git a/VECTO/GUI/IEPCForm.vb b/VECTO/GUI/IEPCForm.vb index 3cd291fedb5bb28f1d0cac67a60feff35498b10e..200e23663ee03908064fe67cb2cd7e04fcfed788 100644 --- a/VECTO/GUI/IEPCForm.vb +++ b/VECTO/GUI/IEPCForm.vb @@ -1,4 +1,5 @@ Imports System.IO +Imports TUGraz.VECTO.Input_Files Imports TUGraz.VectoCommon.InputData Imports TUGraz.VectoCommon.Utils Imports TUGraz.VectoCore.InputData.FileIO.JSON @@ -27,7 +28,7 @@ Public Class IEPCForm Public Sub ReadIEPCFile(file As String) Dim inputData = JSONInputDataFactory.ReadIEPCEngineeringInputData(file, True) - + _iepcFilePath = file tbModel.Text = inputData.Model tbInertia.Text = inputData.Inertia.ToGUIFormat() cbDifferentialIncluded.Checked = inputData.DifferentialIncluded @@ -41,7 +42,7 @@ Public Class IEPCForm SetSecondaryVoltageLevel(voltageLevel) SetGearEntries(inputData.Gears) SetDragEntries(inputData.DragCurves) - _iepcFilePath = file + LbStatus.Text = "" _changed = False @@ -54,7 +55,7 @@ Public Class IEPCForm tbOverloadTime1.Text = voltageLevel.OverloadTime.ToGUIFormat() tbOverloadTorque1.Text = voltageLevel.OverloadTorque.ToGUIFormat() tboverloadTorqueSpeed1.Text = voltageLevel.OverloadTestSpeed.AsRPM.ToGUIFormat() - tbFLCurve1.Text = voltageLevel.FullLoadCurve.Source + tbFLCurve1.Text = GetRelativePath(voltageLevel.FullLoadCurve.Source, Path.GetDirectoryName(_iepcFilePath)) SetPowerMapEntries(_lvPowerMap1, voltageLevel.PowerMap) End Sub @@ -65,7 +66,7 @@ Public Class IEPCForm tbOverloadTime2.Text = voltageLevel.OverloadTime.ToGUIFormat() tbOverloadTorque2.Text = voltageLevel.OverloadTorque.ToGUIFormat() tbOverloadTorqueSpeed2.Text = voltageLevel.OverloadTestSpeed.AsRPM.ToGUIFormat() - tbFLCurve2.Text = voltageLevel.FullLoadCurve.Source + tbFLCurve2.Text = GetRelativePath(voltageLevel.FullLoadCurve.Source, Path.GetDirectoryName(_iepcFilePath)) SetPowerMapEntries(_lvPowerMap2, voltageLevel.PowerMap) End Sub @@ -91,10 +92,12 @@ Public Class IEPCForm End Sub Private Function CreateListViewItem(axleNumber As Integer, filepath As String) As ListViewItem - Dim retVal As New ListViewItem + Dim basePath As String = Path.GetDirectoryName(_iepcFilePath) + Dim retVal As New ListViewItem retVal.SubItems(0).Text = axleNumber.ToGUIFormat() - retVal.SubItems.Add(filepath) - Return retVal + retVal.SubItems.Add(GetRelativePath(filepath, basePath)) + 'retVal.SubItems.Add(filepath) + Return retVal End Function Private Function CreateListViewItem(ratio As Double, outputShaftTorque As NewtonMeter, outputShaftSpeed As PerSecond) As ListViewItem @@ -242,6 +245,7 @@ Public Class IEPCForm dialog.tbGear.Text = entry.SubItems(0).Text dialog.tbInputFile.Text = entry.SubItems(1).Text dialog.tbGear.Focus() + dialog.IEPCPath = GetPath(_iepcFilePath) If dialog.ShowDialog() = DialogResult.OK Then entry.SubItems(0).Text = dialog.tbGear.Text @@ -251,14 +255,14 @@ Public Class IEPCForm End Sub Private Sub btFLCurveFile1_Click(sender As Object, e As EventArgs) Handles btFLCurveFile1.Click - If IEPCFLCFileBrowser.OpenDialog(FileRepl(tbFLCurve1.Text, GetPath(_flcFilePath1))) Then - tbFLCurve1.Text = GetFilenameWithoutDirectory(IEPCFLCFileBrowser.Files(0), GetPath(_flcFilePath1)) + If IEPCFLCFileBrowser.OpenDialog(FileRepl(tbFLCurve1.Text, GetPath(_iepcFilePath))) Then + tbFLCurve1.Text = GetFilenameWithoutDirectory(IEPCFLCFileBrowser.Files(0), GetPath(_iepcFilePath)) End If End Sub Private Sub btFLCurveFile2_Click(sender As Object, e As EventArgs) Handles btFLCurveFile2.Click - If IEPCFLCFileBrowser.OpenDialog(FileRepl(tbFLCurve2.Text, GetPath(_flcFilePath2))) Then - tbFLCurve2.Text = GetFilenameWithoutDirectory(IEPCFLCFileBrowser.Files(0), GetPath(_flcFilePath2)) + If IEPCFLCFileBrowser.OpenDialog(FileRepl(tbFLCurve2.Text, GetPath(_iepcFilePath))) Then + tbFLCurve2.Text = GetFilenameWithoutDirectory(IEPCFLCFileBrowser.Files(0), GetPath(_iepcFilePath)) End If End Sub @@ -398,7 +402,7 @@ Public Class IEPCForm End Function Private Function SaveIEPCToFile(ByVal file As String) As Boolean - Dim iepc = New IEPCInputData + Dim iepc = New IEPCInputData(file) iepc.SetCommonEntries(tbModel.Text, tbInertia.Text, cbDesignTypeWheelMotor.Checked, tbNumberOfDesignTypeWheelMotor.Text, cbDifferentialIncluded.Checked, @@ -416,7 +420,7 @@ Public Class IEPCForm iepc.SetDragCurveEntries(lvDragCurve) - If Not iepc.SaveFile(file) Then + If Not iepc.SaveFile Then MsgBox("Cannot save to " & file, MsgBoxStyle.Critical) Return False End If @@ -584,7 +588,9 @@ Public Class IEPCForm End Function Private Function ValidateFullLoadCurve1() As Boolean - If Not File.Exists(tbFLCurve1.Text) Then + dim tmp = new SubPath() + tmp.Init(GetPath(_iepcFilePath), tbFLCurve1.Text) + If Not File.Exists(tmp.FullPath) Then ShowErrorMessageBox("No valid file path given", tbFLCurve1, False) Return False End If @@ -599,7 +605,9 @@ Public Class IEPCForm End Function Private Function ValidateFullLoadCurve2() As Boolean - If Not File.Exists(tbFLCurve2.Text) Then + dim tmp = new SubPath() + tmp.Init(GetPath(_iepcFilePath), tbFLCurve2.Text) + If Not File.Exists(tmp.FullPath) Then ShowErrorMessageBox("Invalid input no valid file path given", tbFLCurve2, False) Return False End If diff --git a/VECTO/GUI/IEPCInputDialog.vb b/VECTO/GUI/IEPCInputDialog.vb index 3cbd2c4db0658c5acc8f08fd9ec33ae1fbe3c040..6999080fa543cdb91b8322ef79368cf19f6c11fb 100644 --- a/VECTO/GUI/IEPCInputDialog.vb +++ b/VECTO/GUI/IEPCInputDialog.vb @@ -1,4 +1,5 @@ Imports System.IO +Imports TUGraz.VECTO.Input_Files Public Enum IEPCDialogType DragCurveDialog @@ -10,6 +11,7 @@ Public Class IEPCInputDialog Private ReadOnly _dialogType As IEPCDialogType Private _dragCurveFilePath As String Private _powerMapFilePath As String + Public IEPCPath As String Public Sub New(dialogType As IEPCDialogType) @@ -51,7 +53,9 @@ Public Class IEPCInputDialog Return End If - If Not File.Exists(tbInputFile.Text) Then + Dim tmp As SubPath = New SubPath() + tmp.Init(IEPCPath, tbInputFile.Text) + If Not File.Exists(tmp.FullPath) Then MsgBox("Invalid input no valid file path given") _tbInputFile.Focus() Return @@ -86,15 +90,15 @@ Public Class IEPCInputDialog Case IEPCDialogType.DragCurveDialog SelectInputFileDialog(IEPCDragFileBrowser, _dragCurveFilePath) Case IEPCDialogType.PowerMapDialog - SelectInputFileDialog(IEPCDragFileBrowser, _powerMapFilePath) + SelectInputFileDialog(IEPCPowerMapFileBrowser, _powerMapFilePath) End Select End Sub #End Region Private Sub SelectInputFileDialog(fileBrowser As FileBrowser, filePath As String ) - If fileBrowser.OpenDialog(FileRepl(tbInputFile.Text, GetPath(filePath))) Then - tbInputFile.Text = GetFilenameWithoutDirectory(fileBrowser.Files(0), GetPath(filePath)) + If fileBrowser.OpenDialog(FileRepl(tbInputFile.Text, IEPCPath)) Then + tbInputFile.Text = GetFilenameWithoutDirectory(fileBrowser.Files(0), IEPCPath) End If End Sub diff --git a/VECTO/GUI/VectoJobForm.vb b/VECTO/GUI/VectoJobForm.vb index aa723c3532a6236104417963f1b0c941ee5b026f..a5dd446079e08e3da1e981a826c3e44c116cdafe 100644 --- a/VECTO/GUI/VectoJobForm.vb +++ b/VECTO/GUI/VectoJobForm.vb @@ -476,7 +476,7 @@ Public Class VectoJobForm UpdateEnabledControls() 'Files ----------------------------- TbVEH.Text = GetRelativePath(inputData.JobInputData.Vehicle.DataSource.SourceFile, _basePath) - If (JobType <> VectoSimulationJobType.BatteryElectricVehicle) Then + If (JobType <> VectoSimulationJobType.BatteryElectricVehicle AndAlso JobType <> VectoSimulationJobType.IEPC_E) Then TbENG.Text = GetRelativePath(inputData.JobInputData.Vehicle.Components.EngineInputData.DataSource.SourceFile, _basePath) Else TbENG.Text = "" @@ -538,7 +538,11 @@ Public Class VectoJobForm Dim sb As ICycleData For Each sb In vectoJob.Cycles Dim lv0 As ListViewItem = New ListViewItem - lv0.Text = GetRelativePath(sb.CycleData.Source, Path.GetDirectoryName(Path.GetFullPath(file))) 'sb.Name + if (sb.CycleData.SourceType = DataSourceType.Embedded) Then + lv0.Text = sb.Name + else + lv0.Text = GetRelativePath(sb.CycleData.Source, Path.GetDirectoryName(Path.GetFullPath(file))) 'sb.Name + End If LvCycles.Items.Add(lv0) Next Catch ex As Exception diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb index 9b70d091245c6461929668f437a34a3fe01f6b1e..ef9a269edce624339fae4dda4391b7d079add74b 100644 --- a/VECTO/GUI/VehicleForm.vb +++ b/VECTO/GUI/VehicleForm.vb @@ -449,13 +449,14 @@ Public Class VehicleForm tbAngledriveLossMapPath.Text = If(angledrive.LossMap Is Nothing, "", GetRelativePath(angledrive.LossMap.Source, basePath)) - If (vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + If (vehicle.VehicleType <> VectoSimulationJobType.ConventionalVehicle AndAlso vehicle.VehicleType <> VectoSimulationJobType.EngineOnlySimulation) Then lvREESSPacks.Items.Clear() For Each entry As IElectricStorageEngineeringInputData In vehicle.Components.ElectricStorage.ElectricStorageElements.OrderBy(Function(x) x.StringId) lvREESSPacks.Items.Add(CreateREESSPackListViewItem(GetRelativePath(entry.REESSPack.DataSource.SourceFile, basePath), entry.Count, entry.StringId)) Next tbInitialSoC.Text = (vehicle.InitialSOC * 100).ToGUIFormat() + if (vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) then Dim em As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First(Function(x) x.Position <> PowertrainPosition.GEN) tbElectricMotor.Text = GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath) tbEmCount.Text = em.Count.ToGUIFormat() @@ -473,7 +474,16 @@ Public Class VehicleForm gear += 1 Next End If + end If + if vehicle.VehicleType = VectoSimulationJobType.IEPC_E OrElse vehicle.VehicleType = VectoSimulationJobType.IHPC Then + Dim iepc = vehicle.Components.IEPCEngineeringInputData + tbIEPCFilePath.Text = GetRelativePath(iepc.DataSource.SourceFile, basePath) + End If + if vehicle.VehicleType = VectoSimulationJobType.IHPC Then + Dim ihpc = vehicle.Components.ElectricMachines.Entries.First(Function(x) x.Position = PowertrainPosition.IHPC) + tbIHPCFilePath.Text = GetRelativePath(ihpc.ElectricMachine.DataSource.SourceFile, basePath) + End If End If If (vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then @@ -831,40 +841,48 @@ Public Class VehicleForm veh.PtoLossMap.Init(GetPath(file), tbPTOLossMap.Text) End If - If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + 'If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + If (VehicleType <> VectoSimulationJobType.ConventionalVehicle andalso VehicleType <> VectoSimulationJobType.EngineOnlySimulation) For Each reess As ListViewItem In lvREESSPacks.Items veh.ReessPacks.Add(Tuple.Create(reess.SubItems(REESPackTbl.ReessFile).Text, reess.SubItems(REESPackTbl.Count).Text.ToInt(), reess.SubItems(REESPackTbl.StringId).Text.ToInt())) Next veh.InitialSOC = tbInitialSoC.Text.ToDouble(80) / 100.0 - If tbElectricMotor.Text = "" Then - MsgBox("Electric Motor File is required.") - tcVehicleComponents.SelectedTab = tpElectricMachine - tbElectricMotor.Focus() - Return False - End If - - veh.ElectricMotorFile.Init(GetPath(file), tbElectricMotor.Text) - veh.ElectricMotorPosition = CType(cbEmPos.SelectedValue, PowertrainPosition) - veh.ElectricMotorCount = tbEmCount.Text.ToInt(1) - veh.ElectricMotorRatio = tbRatioEm.Text.ToDouble(1) - 'veh.ElectricMotorMechEff = tbEmADCLossMap.Text.ToDouble() - - If tbEmADCLossMap.Text = "" Then - MsgBox("Loss Map EM ADC is required.") - tcVehicleComponents.SelectedTab = tpElectricMachine - tbEmADCLossMap.Focus() - Return False - End If - - - veh.ElectricMotorMechLossMap.Init(GetPath(file), tbEmADCLossMap.Text) - If (veh.ElectricMotorPosition = PowertrainPosition.HybridP2_5) Then - veh.ElectricMotorPerGearRatios = lvRatioPerGear.Items.Cast(Of ListViewItem).Select(Function(item) item.SubItems(RatiosPerGearTbl.Ratio).Text.ToDouble(0)).ToArray() + + + If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse + VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse + VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + + If tbElectricMotor.Text = "" Then + MsgBox("Electric Motor File is required.") + tcVehicleComponents.SelectedTab = tpElectricMachine + tbElectricMotor.Focus() + Return False + End If + veh.ElectricMotorFile.Init(GetPath(file), tbElectricMotor.Text) + veh.ElectricMotorPosition = CType(cbEmPos.SelectedValue, PowertrainPosition) + veh.ElectricMotorCount = tbEmCount.Text.ToInt(1) + veh.ElectricMotorRatio = tbRatioEm.Text.ToDouble(1) + 'veh.ElectricMotorMechEff = tbEmADCLossMap.Text.ToDouble() + If tbEmADCLossMap.Text = "" Then + MsgBox("Loss Map EM ADC is required.") + tcVehicleComponents.SelectedTab = tpElectricMachine + tbEmADCLossMap.Focus() + Return False + End If + + veh.ElectricMotorMechLossMap.Init(GetPath(file), tbEmADCLossMap.Text) + If (veh.ElectricMotorPosition = PowertrainPosition.HybridP2_5) Then + veh.ElectricMotorPerGearRatios = lvRatioPerGear.Items.Cast(Of ListViewItem).Select(Function(item) item.SubItems(RatiosPerGearTbl.Ratio).Text.ToDouble(0)).ToArray() + End If + end if + if (VehicleType = VectoSimulationJobType.IEPC_S OrElse VehicleType = VectoSimulationJobType.IEPC_E) Then + veh.IEPCFile.Init(GetPath(file), tbIEPCFilePath.Text) End If End If - If (VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + If (VehicleType = VectoSimulationJobType.SerialHybridVehicle OrElse VehicleType = VectoSimulationJobType.IEPC_S) Then If tbGenSetEM.Text = "" Then MsgBox("Generator File is required.") tcVehicleComponents.SelectedTab = tpGensetComponents @@ -885,6 +903,7 @@ Public Class VehicleForm veh.GenSetMechLossMap.Init(GetPath(file), tbGenSetADC.Text) End If + If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle) AndAlso Not String.IsNullOrWhiteSpace(tbEmTorqueLimits.Text) Then veh.EmTorqueLimitsFile.Init(GetPath(file), tbEmTorqueLimits.Text) End If diff --git a/VECTO/Input Files/IEPCInputData.vb b/VECTO/Input Files/IEPCInputData.vb index 3457bf1912648f63313a3ab2478aa52e768402c9..1ac648e0f266c4e974241fcf36aa28930051d0c5 100644 --- a/VECTO/Input Files/IEPCInputData.vb +++ b/VECTO/Input Files/IEPCInputData.vb @@ -1,4 +1,5 @@ Imports System.IO +Imports TUGraz.VECTO.Input_Files Imports TUGraz.VectoCommon.Exceptions Imports TUGraz.VectoCommon.InputData Imports TUGraz.VectoCommon.Models @@ -22,16 +23,15 @@ Public Class IEPCInputData private _filePath As String - public Sub New() + public Sub New(file As String) _voltageLevels = New List(Of IElectricMotorVoltageLevel) + _filePath = file End Sub - Public Function SaveFile(filePath As String) As Boolean - _filePath = filePath - + Public Function SaveFile As Boolean Try Dim writer = New JSONFileWriter() - writer.SaveIEPC(Me, filePath, Cfg.DeclMode) + writer.SaveIEPC(Me, _filePath, Cfg.DeclMode) Catch ex As Exception MsgBox("Failed to write IEPC file: " + ex.Message) Return False @@ -64,10 +64,12 @@ Public Class IEPCInputData level.OverloadTime = overloadTime.ToDouble().SI(Of Second) level.OverloadTorque = overloadTorque.ToDouble().SI(Of NewtonMeter) level.OverloadTestSpeed = overloadTorqueSpeed.ToDouble().RPMtoRad() - If Not File.Exists(fullLoadCurve) Then + Dim tmp as SubPath = new SubPath() + tmp.Init(GetPath(_filePath), fullLoadCurve) + If Not File.Exists(tmp.FullPath) Then Throw New VectoException("Full-Load Curve is missing or invalid") Else - level.FullLoadCurve = VectoCSVFile.Read(fullLoadCurve) + level.FullLoadCurve = VectoCSVFile.Read(tmp.FullPath) End If level.PowerMap = GetPowerMap(powerMap) @@ -80,11 +82,12 @@ Public Class IEPCInputData For Each entry As ListViewItem In powerMap.Items Dim currentEntry = New JSONElectricMotorPowerMap currentEntry.Gear = entry.SubItems(0).Text.ToInt() - - If Not File.Exists(entry.SubItems(1).Text) Then + Dim tmp as SubPath = new SubPath() + tmp.Init(GetPath(_filePath), entry.SubItems(1).Text) + If Not File.Exists(tmp.FullPath) Then Throw New VectoException("Power Map is missing or invalid") Else - currentEntry.PowerMap = VectoCSVFile.Read(entry.SubItems(1).Text) + currentEntry.PowerMap = VectoCSVFile.Read(tmp.FullPath) End If powerMaps.Add(currentEntry) Next @@ -118,11 +121,12 @@ Public Class IEPCInputData For Each entry As ListViewItem In dragCurveListView.Items Dim currentEntry = New DragCurveEntry currentEntry.Gear = entry.SubItems(0).Text.ToInt() - - If Not File.Exists(entry.SubItems(1).Text) Then + Dim tmp as SubPath = new SubPath() + tmp.Init(GetPath(_filePath), entry.SubItems(1).Text) + If Not File.Exists(tmp.FullPath) Then Throw New VectoException("Drag Curve is missing or invalid") Else - currentEntry.DragCurve = VectoCSVFile.Read(entry.SubItems(1).Text) + currentEntry.DragCurve = VectoCSVFile.Read(tmp.FullPath) End If _dragCurves.Add(currentEntry) Next diff --git a/VECTO/Input Files/VectoJob.vb b/VECTO/Input Files/VectoJob.vb index 43fb7e27f3961baac537c54eb6804d690bd769ae..8b54f3b75254e75eebc6cab25acb4abd6b251ae6 100644 --- a/VECTO/Input Files/VectoJob.vb +++ b/VECTO/Input Files/VectoJob.vb @@ -132,8 +132,15 @@ Public Class VectoJob End Sub Public Function SaveFile() As Boolean + dim emPos As PowertrainPosition? = Nothing + if (IEngineeringJobInputData_Vehicle?.VehicleType <> VectoSimulationJobType.ConventionalVehicle) then + if (IEngineeringJobInputData_Vehicle.VehicleType <> VectoSimulationJobType.IEPC_E) Then + emPos = IEngineeringJobInputData_Vehicle?.Components.ElectricMachines?.Entries.FirstOrDefault()?.Position + End If + end if + Dim validationResults As IList(Of ValidationResult) = - Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), JobType, IEngineeringJobInputData_Vehicle?.Components.ElectricMachines?.Entries.FirstOrDefault()?.Position, Nothing, False) + Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), JobType, emPos, Nothing, False) If validationResults.Count > 0 Then Dim messages As IEnumerable(Of String) = @@ -521,7 +528,7 @@ Public Class VectoJob If vectoJob.JobType.IsOneOf(VectoSimulationJobType.BatteryElectricVehicle, VectoSimulationJobType.ParallelHybridVehicle, VectoSimulationJobType.SerialHybridVehicle) _ AndAlso (vehicleInputData.Components.ElectricMachines Is Nothing OrElse vehicleInputData.Components.ElectricMachines.Entries.Count = 0) Then _ result.Add(New ValidationResult("Electric machine is missing in vehicle")) - If Not vectoJob.JobType = VectoSimulationJobType.BatteryElectricVehicle AndAlso engineInputData Is Nothing Then _ + If Not (vectoJob.JobType = VectoSimulationJobType.BatteryElectricVehicle OrElse vectoJob.JobType = VectoSimulationJobType.IEPC_E) AndAlso engineInputData Is Nothing Then _ result.Add(New ValidationResult("Engine File is missing or invalid")) If (vectoJob.JobType = VectoSimulationJobType.ConventionalVehicle OrElse vectoJob.JobType = VectoSimulationJobType.ParallelHybridVehicle) _ AndAlso gearboxInputData Is Nothing Then _ @@ -557,7 +564,7 @@ Public Class VectoJob If vehicleInputData.SavedInDeclarationMode Then result.Add(New ValidationResult("Vehicle File is not in Engineering Mode")) End If - If Not vectoJob.JobType = VectoSimulationJobType.BatteryElectricVehicle AndAlso engineInputData.SavedInDeclarationMode Then + If Not (vectoJob.JobType = VectoSimulationJobType.BatteryElectricVehicle OrElse vectoJob.JobType = VectoSimulationJobType.IEPC_E) AndAlso engineInputData.SavedInDeclarationMode Then result.Add(New ValidationResult("Engine File is not in Engineering Mode")) End If If Not vectoJob.JobType = VectoSimulationJobType.BatteryElectricVehicle _ @@ -578,8 +585,13 @@ Public Class VectoJob End If End If - - result = jobData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), vehicleInputData.VehicleType, vehicleInputData.Components.ElectricMachines?.Entries.FirstOrDefault()?.Position, If(jobData.GearboxData?.Type, GearboxType.NoGearbox), False) + dim emPos As PowertrainPosition? = Nothing + if (vehicleInputData?.VehicleType <> VectoSimulationJobType.ConventionalVehicle) then + if (vehicleInputData.VehicleType <> VectoSimulationJobType.IEPC_E) Then + emPos = vehicleInputData?.Components.ElectricMachines?.Entries.FirstOrDefault()?.Position + End If + end if + result = jobData.Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), vehicleInputData.VehicleType, empos, If(jobData.GearboxData?.Type, GearboxType.NoGearbox), False) If result.Any() Then Return _ New ValidationResult("Vecto Job Configuration is invalid. ", result.Select(Function(r) r.ErrorMessage).ToList()) diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index fb819abec22ac8d541c49c26840d85abf45025e1..44f8c6919eb7123165b792ccae72739382be3e12 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -47,8 +47,8 @@ Public Class Vehicle <ValidateObject> Public RetarderType As RetarderType Public RetarderRatio As Double = 0 Public ReadOnly RetarderLossMapFile As SubPath - Public ReadOnly EmTorqueLimitsFile As SubPath - public ReadOnly PropulsionTorqueFile as SubPath + Public ReadOnly EmTorqueLimitsFile As SubPath + public ReadOnly PropulsionTorqueFile as SubPath Public DynamicTyreRadius As Double Public ReadOnly Axles As List(Of AxleInputData) @@ -67,7 +67,7 @@ Public Class Vehicle Public PtoType As String Public ReadOnly PtoLossMap As SubPath Public ReadOnly PtoCycleStandstill As SubPath - Public ReadOnly PtoCycleDriving As SubPath + Public ReadOnly PtoCycleDriving As SubPath Public torqueLimitsList As List(Of ITorqueLimitInputData) Public VehicleidlingSpeed As PerSecond Public legClass As LegislativeClass @@ -80,43 +80,45 @@ Public Class Vehicle Public VehicleTankSystem As TankSystem? Public ReadOnly ElectricMotorFile As SubPath - Public ReadOnly GenSetEMFile As SubPath + Public ReadOnly GenSetEMFile As SubPath public ReadOnly ReessPacks As List(Of Tuple(Of String, Integer, Integer)) - Public ElectricMotorPosition As PowertrainPosition + Public ElectricMotorPosition As PowertrainPosition Public ElectricMotorCount As Integer Public ElectricMotorRatio As Double - 'Public ElectricMotorMechEff As Double - Public ElectricMotorMechLossMap As SubPath - Public GenSetMechLossMap As SubPath - - Public GenSetPosition As PowertrainPosition - Public GenSetCount As Integer - Public GenSetRatio As Double - 'Public ElectricMotorMechEff As Double - Public GenSetLossMap As SubPath - - public GearDuringPTODrive As UInteger? - Public EngineSpeedDuringPTODrive As PerSecond - Public ElectricMotorPerGearRatios As Double() - - Public Sub New() + 'Public ElectricMotorMechEff As Double + Public ElectricMotorMechLossMap As SubPath + Public GenSetMechLossMap As SubPath + + Public GenSetPosition As PowertrainPosition + Public GenSetCount As Integer + Public GenSetRatio As Double + 'Public ElectricMotorMechEff As Double + Public GenSetLossMap As SubPath + + public GearDuringPTODrive As UInteger? + Public EngineSpeedDuringPTODrive As PerSecond + Public ElectricMotorPerGearRatios As Double() + Public IEPCFile As SubPath + + Public Sub New() _path = "" _filePath = "" CrossWindCorrectionFile = New SubPath RetarderLossMapFile = New SubPath AngledriveLossMapFile = New SubPath() - EmTorqueLimitsFile = new SubPath() - PropulsionTorqueFile = New SubPath() + EmTorqueLimitsFile = new SubPath() + PropulsionTorqueFile = New SubPath() + IEPCFile = new SubPath() Axles = New List(Of AxleInputData) torqueLimitsList = New List(Of ITorqueLimitInputData) ReessPacks = new List(Of Tuple(Of String,Integer,Integer)) - PtoLossMap = New SubPath() + PtoLossMap = New SubPath() PtoCycleStandstill = New SubPath() - PtoCycleDriving = new SubPath() + PtoCycleDriving = new SubPath() ElectricMotorFile = New SubPath() ElectricMotorMechLossMap = new SubPath() GenSetEMFile = new SubPath() @@ -226,7 +228,7 @@ Public Class Vehicle RetarderLossMapFile.Clear() AngledriveLossMapFile.Clear() EmTorqueLimitsFile.Clear() - PropulsionTorqueFile.Clear() + PropulsionTorqueFile.Clear() AngledriveType = AngledriveType.None AngledriveLossMapFile.Clear() @@ -235,7 +237,7 @@ Public Class Vehicle PtoType = PTOTransmission.NoPTO PtoLossMap.Clear() PtoCycleStandstill.Clear() - PtoCycleDriving.Clear() + PtoCycleDriving.Clear() Axles.Clear() VehicleCategory = VehicleCategory.RigidTruck @@ -787,9 +789,17 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property IEPCEngineeringInputData As IIEPCEngineeringInputData Implements IVehicleComponentsEngineering.IEPCEngineeringInputData + Public ReadOnly Property IEPCEngineeringInputData As IIEPCEngineeringInputData Implements IVehicleComponentsEngineering.IEPCEngineeringInputData + get + Return new IEPCWrapper(me) + End Get + End Property - Public ReadOnly Property IEPC As IIEPCDeclarationInputData Implements IVehicleComponentsDeclaration.IEPC + Public ReadOnly Property IEPC As IIEPCDeclarationInputData Implements IVehicleComponentsDeclaration.IEPC + get + return IEPCEngineeringInputData + End Get + End Property Public ReadOnly Property BusAuxiliaries As IBusAuxiliariesDeclarationData Implements IVehicleComponentsDeclaration.BusAuxiliaries @@ -825,21 +835,21 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property PTO_DriveGear As GearshiftPosition Implements IVehicleEngineeringInputData.PTO_DriveGear - get - return If(gearDuringPTODrive.HasValue, new GearshiftPosition(GearDuringPTODrive.Value), Nothing) - End Get + Public ReadOnly Property PTO_DriveGear As GearshiftPosition Implements IVehicleEngineeringInputData.PTO_DriveGear + get + return If(gearDuringPTODrive.HasValue, new GearshiftPosition(GearDuringPTODrive.Value), Nothing) + End Get end Property - Public Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC - Public Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType + Public Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC + Public Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType - Public ReadOnly Property PTO_DriveEngineSpeed As PerSecond Implements IVehicleEngineeringInputData.PTO_DriveEngineSpeed - get - Return EngineSpeedDuringPTODrive - End Get - End Property + Public ReadOnly Property PTO_DriveEngineSpeed As PerSecond Implements IVehicleEngineeringInputData.PTO_DriveEngineSpeed + get + Return EngineSpeedDuringPTODrive + End Get + End Property Public ReadOnly Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle Get @@ -871,9 +881,9 @@ end Property End Get End Property - Public ReadOnly Property ExemptedTechnology As String Implements IVehicleDeclarationInputData.ExemptedTechnology + Public ReadOnly Property ExemptedTechnology As String Implements IVehicleDeclarationInputData.ExemptedTechnology - Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass + Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass Public ReadOnly Property NumberPassengerSeatsUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsUpperDeck Public ReadOnly Property NumberPassengerSeatsLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengerSeatsLowerDeck Public ReadOnly Property NumberPassengersStandingLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberPassengersStandingLowerDeck @@ -915,12 +925,12 @@ end Property End Get End Property - Public ReadOnly Property NumSteeredAxles As Integer? Implements IAxlesDeclarationInputData.NumSteeredAxles + Public ReadOnly Property NumSteeredAxles As Integer? Implements IAxlesDeclarationInputData.NumSteeredAxles get return nothing End Get - End Property - Public ReadOnly Property XMLSource As XmlNode Implements IAdvancedDriverAssistantSystemDeclarationInputData.XMLSource + End Property + Public ReadOnly Property XMLSource As XmlNode Implements IAdvancedDriverAssistantSystemDeclarationInputData.XMLSource Public ReadOnly Property VehicleTypeApprovalNumber As String Implements IVehicleDeclarationInputData.VehicleTypeApprovalNumber Public ReadOnly Property ArchitectureID As ArchitectureID Implements IVehicleDeclarationInputData.ArchitectureID Public ReadOnly Property OvcHev As Boolean Implements IVehicleDeclarationInputData.OvcHev @@ -944,42 +954,80 @@ end Property Public ReadOnly Property IAxlesDeclarationInputData_XMLSource As XmlNode Implements IAxlesDeclarationInputData.XMLSource End Class +Public Class IEPCWrapper + Implements IIEPCEngineeringInputData + + Private _vehicle As Vehicle + + Public Sub New(vehicle As Vehicle) + _vehicle = vehicle + End Sub + + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + get + Dim retVal As DataSource = New DataSource() + retVal.SourceType = DataSourceType.JSONFile + retVal.SourceFile = _vehicle.IEPCFile.FullPath + Return retVal + End Get + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IIEPCDeclarationInputData.ElectricMachineType + Public ReadOnly Property R85RatedPower As Watt Implements IIEPCDeclarationInputData.R85RatedPower + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IIEPCDeclarationInputData.Inertia + Public ReadOnly Property DifferentialIncluded As Boolean Implements IIEPCDeclarationInputData.DifferentialIncluded + Public ReadOnly Property DesignTypeWheelMotor As Boolean Implements IIEPCDeclarationInputData.DesignTypeWheelMotor + Public ReadOnly Property NrOfDesignTypeWheelMotorMeasured As Integer? Implements IIEPCDeclarationInputData.NrOfDesignTypeWheelMotorMeasured + Public ReadOnly Property Gears As IList(Of IGearEntry) Implements IIEPCDeclarationInputData.Gears + Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IIEPCDeclarationInputData.VoltageLevels + Public ReadOnly Property DragCurves As IList(Of IDragCurve) Implements IIEPCDeclarationInputData.DragCurves + Public ReadOnly Property Conditioning As TableData Implements IIEPCDeclarationInputData.Conditioning + Public ReadOnly Property OverloadRecoveryFactor As Double Implements IIEPCEngineeringInputData.OverloadRecoveryFactor +End Class + Public Class ElectricStorageSystemWrapper - Implements IElectricStorageSystemEngineeringInputData + Implements IElectricStorageSystemEngineeringInputData - Private _vehicle As Vehicle + Private _vehicle As Vehicle - Public Sub New(vehicle As Vehicle) - _vehicle = vehicle - End Sub + Public Sub New(vehicle As Vehicle) + _vehicle = vehicle + End Sub - Public ReadOnly Property ElectricStorageElements As IList(Of IElectricStorageDeclarationInputData) Implements IElectricStorageSystemDeclarationInputData.ElectricStorageElements + Public ReadOnly Property ElectricStorageElements As IList(Of IElectricStorageDeclarationInputData) Implements IElectricStorageSystemDeclarationInputData.ElectricStorageElements get return _vehicle.ReessPacks.Select(Function(x) new ElectricStorageWrapper(x, GetPath(_vehicle.FilePath))).Cast(of IElectricStorageDeclarationInputData) .toList() End Get - End Property - Public ReadOnly Property IElectricStorageSystemEngineeringInputData_ElectricStorageElements As IList(Of IElectricStorageEngineeringInputData) Implements IElectricStorageSystemEngineeringInputData.ElectricStorageElements + End Property + Public ReadOnly Property IElectricStorageSystemEngineeringInputData_ElectricStorageElements As IList(Of IElectricStorageEngineeringInputData) Implements IElectricStorageSystemEngineeringInputData.ElectricStorageElements get - return _vehicle.ReessPacks.Select(Function(x) new ElectricStorageWrapper(x, GetPath(_vehicle.FilePath))).cast(of IElectricStorageEngineeringInputData).toList() + return _vehicle.ReessPacks.Select(Function(x) new ElectricStorageWrapper(x, GetPath(_vehicle.FilePath))).cast(of IElectricStorageEngineeringInputData).toList() End Get - End Property + End Property End Class Public Class ElectricStorageWrapper Implements IElectricStorageEngineeringInputData, IBatteryPackEngineeringInputData - Public Property BatteryFile As SubPath + Public Property BatteryFile As SubPath - Public Sub New(veh As Tuple(Of String,Integer,Integer), filePath As String) + Public Sub New(veh As Tuple(Of String,Integer,Integer), filePath As String) count = veh.Item2 StringId = veh.Item3 - BatteryFile = New SubPath - BatteryFile.Init(filePath, veh.Item1) + BatteryFile = New SubPath + BatteryFile.Init(filePath, veh.Item1) End Sub - Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack + Public ReadOnly Property REESSPack As IREESSPackInputData Implements IElectricStorageEngineeringInputData.REESSPack Get Return Me End Get @@ -988,9 +1036,9 @@ Public Class ElectricStorageWrapper Public ReadOnly Property Count As Integer Implements IElectricStorageEngineeringInputData.Count - Public ReadOnly Property StringId As Integer Implements IElectricStorageDeclarationInputData.StringId + Public ReadOnly Property StringId As Integer Implements IElectricStorageDeclarationInputData.StringId - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource Get Dim retVal As DataSource = New DataSource() retVal.SourceType = DataSourceType.JSONFile @@ -1034,47 +1082,47 @@ Public Class ElectricMachinesWrapper Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() { New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), - .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), - .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), - .Position = Vehicle.ElectricMotorPosition, - .RatioADC = Vehicle.ElectricMotorRatio, - .RatioPerGear = vehicle.ElectricMotorPerGearRatios, - .Count = Vehicle.ElectricMotorCount}}) + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), + .Position = Vehicle.ElectricMotorPosition, + .RatioADC = Vehicle.ElectricMotorRatio, + .RatioPerGear = vehicle.ElectricMotorPerGearRatios, + .Count = Vehicle.ElectricMotorCount}}) if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then retval.Add(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { - .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), - .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), - .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), - .Position = PowertrainPosition.GEN, - .RatioADC = Vehicle.GenSetRatio, - .Count = Vehicle.GenSetCount}) + .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), + .Position = PowertrainPosition.GEN, + .RatioADC = Vehicle.GenSetRatio, + .Count = Vehicle.GenSetCount}) End If Return retval End Get End Property Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries Get - Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { + Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() With { .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), - .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), - .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), - .Position = Vehicle.ElectricMotorPosition, - .RatioADC = Vehicle.ElectricMotorRatio, - .RatioPerGear = Vehicle.ElectricMotorPerGearRatios, - .Count = Vehicle.ElectricMotorCount}}) - - if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then - retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { - .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), - .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), - .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), - .Position = PowertrainPosition.GEN, - .RatioADC = Vehicle.GenSetRatio, - .Count = Vehicle.GenSetCount}) - End If - Return retval + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), + .Position = Vehicle.ElectricMotorPosition, + .RatioADC = Vehicle.ElectricMotorRatio, + .RatioPerGear = Vehicle.ElectricMotorPerGearRatios, + .Count = Vehicle.ElectricMotorCount}}) + + if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { + .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), + .Position = PowertrainPosition.GEN, + .RatioADC = Vehicle.GenSetRatio, + .Count = Vehicle.GenSetCount}) + End If + Return retval End Get End Property @@ -1082,36 +1130,36 @@ Public Class ElectricMachinesWrapper End Class Public Class ElectricMachineWrapper - Implements IElectricMotorEngineeringInputData + Implements IElectricMotorEngineeringInputData - Private EMFile As SubPath + Private EMFile As SubPath - Public Sub New(em As SubPath) + Public Sub New(em As SubPath) EMFile = em - End Sub + End Sub - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource - Get - Return New DataSource() With { - .SourceFile = EMFile.FullPath} - End Get - End Property - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Get + Return New DataSource() With { + .SourceFile = EMFile.FullPath} + End Get + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IElectricMotorDeclarationInputData.VoltageLevels - Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IElectricMotorDeclarationInputData.ElectricMachineType - Public ReadOnly Property R85RatedPower As Watt Implements IElectricMotorDeclarationInputData.R85RatedPower - Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia - Public ReadOnly Property DcDcConverterIncluded As Boolean Implements IElectricMotorDeclarationInputData.DcDcConverterIncluded - Public ReadOnly Property IHPCType As String Implements IElectricMotorDeclarationInputData.IHPCType - Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve - Public ReadOnly Property Conditioning As TableData Implements IElectricMotorDeclarationInputData.Conditioning - Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorEngineeringInputData.OverloadRecoveryFactor + Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IElectricMotorDeclarationInputData.VoltageLevels + Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IElectricMotorDeclarationInputData.ElectricMachineType + Public ReadOnly Property R85RatedPower As Watt Implements IElectricMotorDeclarationInputData.R85RatedPower + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia + Public ReadOnly Property DcDcConverterIncluded As Boolean Implements IElectricMotorDeclarationInputData.DcDcConverterIncluded + Public ReadOnly Property IHPCType As String Implements IElectricMotorDeclarationInputData.IHPCType + Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve + Public ReadOnly Property Conditioning As TableData Implements IElectricMotorDeclarationInputData.Conditioning + Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorEngineeringInputData.OverloadRecoveryFactor End Class \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 90ccb2b255562a9f029aaef06e5c18fc5f18921e..fa51f7d3a96df4b9726ef7fe5956a0af87c137f0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -98,7 +98,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON case "ParallelHybrid": return VectoSimulationJobType.ParallelHybridVehicle; case "BatteryElectric": return VectoSimulationJobType.BatteryElectricVehicle; case "SerialHybrid": return VectoSimulationJobType.SerialHybridVehicle; + case "IEPC_E": case "IEPC": return VectoSimulationJobType.IEPC_E; + case "IEPC_S": case "IEPC-S": return VectoSimulationJobType.IEPC_S; case "IHPC": return VectoSimulationJobType.IHPC; default: throw new VectoException("Invalid parameter value {0}", Body.GetEx<String>("PowertrainConfiguration")); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs index e3ac366d4122c6de954e3bd05af6952bfae4f847..da4e2d0104c2110bc5c8d452f9f273c916f236bf 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs @@ -439,7 +439,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl var retarderData = axleGearRequired ? dao.CreateRetarderData(vehicle.Components.RetarderInputData, powertrainPosition) : new RetarderData() { - Type = RetarderType.LossesIncludedInTransmission + Type = RetarderType.LossesIncludedInTransmission, + Ratio = 1.0 }; var gearshiftParams = dao.CreateGearshiftData(GearboxType.APTN, diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs index bc54aeafc097c47864d7451942cad869eaa30e9d..0176438a7d8f50d0461fc628d39912bc788fc1ca 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs @@ -23,6 +23,7 @@ public class JSONFileWriter : IOutputFileWriter public const int VehicleFormatVersion = 8; public const int BusVehicleFormatVersion = 9; public const int HEV_BEVVehicleFormatVersion = 10; + public const int IEPCVehicleFormatVersion = 11; #endregion @@ -34,6 +35,8 @@ public class JSONFileWriter : IOutputFileWriter private const int BEVVectoJobFormatVersion = 9; private const int SHEVVectoJobFormatVersion = 11; + private const int IEPCVectoJobFormatVersion = 12; + #endregion @@ -391,12 +394,16 @@ public class JSONFileWriter : IOutputFileWriter break; case VectoSimulationJobType.EngineOnlySimulation: break; + case VectoSimulationJobType.IEPC_E: + case VectoSimulationJobType.IEPC_S: + SaveIEPCVehicle(vehicle, airdrag, retarder, pto, angledrive, filename, DeclMode); + break; default: throw new ArgumentOutOfRangeException(); } } - + public void SaveConventionalVehicle( IVehicleEngineeringInputData vehicle, IAirdragEngineeringInputData airdrag, IRetarderInputData retarder, IPTOTransmissionInputData pto, IAngledriveInputData angledrive, string filename, bool DeclMode) @@ -607,6 +614,45 @@ public class JSONFileWriter : IOutputFileWriter WriteFile(header, body, filename); } + private void SaveIEPCVehicle(IVehicleEngineeringInputData vehicle, IAirdragEngineeringInputData airdrag, + IRetarderInputData retarder, IPTOTransmissionInputData pto, IAngledriveInputData angledrive, string filename, + bool DeclMode) + { + var basePath = Path.GetDirectoryName(filename); + var header = GetHeader(IEPCVehicleFormatVersion); + var retarderOut = GetRetarderOut(retarder, basePath); + + var ptoOut = GetPTOOut(pto, basePath); + + //var angledriveOut = GetAngledriveOut(angledrive, basePath); + + //var torqueLimits = GetTorqueLimits(vehicle); + + var electricMotorsOut = vehicle.VehicleType == VectoSimulationJobType.IEPC_S ? GetElectricMotors(vehicle, basePath) : null; + var battery = GetBattery(vehicle, basePath); + var body = GetVehicle(vehicle, airdrag, DeclMode, basePath); + body.Add("InitialSoC", vehicle.InitialSOC * 100); + body.Add("PowertrainConfiguration", vehicle.VehicleType.ToString()); + body.Add("IEPC", vehicle.Components.IEPCEngineeringInputData.DataSource.SourceFile); + if (electricMotorsOut != null) { + body.Add("ElectricMotors", electricMotorsOut); + } + + body.Add("Batteries", battery); + + //body.Add("IdlingSpeed", vehicle.EngineIdleSpeed.AsRPM); + if (retarder.Type != RetarderType.None) + body.Add("Retarder", retarderOut); + //body.Add("Angledrive", angledriveOut); + body.Add("PTO", ptoOut); + //body.Add("TorqueLimits", torqueLimits); + + if ((vehicle.TankSystem.HasValue)) + body["TankSystem"] = vehicle.TankSystem.Value.ToString(); + + WriteFile(header, body, filename); + } + private Dictionary<string, object>[] GetBattery(IVehicleEngineeringInputData vehicle, string basePath) => vehicle.Components.ElectricStorage.ElectricStorageElements.Select( entry => new Dictionary<string, object> { @@ -658,6 +704,9 @@ public class JSONFileWriter : IOutputFileWriter case VectoSimulationJobType.BatteryElectricVehicle: SaveBatteryElectricJob(input, filename, DeclMode); break; + case VectoSimulationJobType.IEPC_E: + SaveIEPCEJob(input, filename, DeclMode); + break; case VectoSimulationJobType.EngineOnlySimulation: SaveEngineOnlyJob(input, filename, DeclMode); break; @@ -666,6 +715,8 @@ public class JSONFileWriter : IOutputFileWriter } } + + private void SaveParallelHybridJob(IEngineeringInputDataProvider input, string filename, bool declMode) { var basePath = Path.GetDirectoryName(filename); @@ -787,7 +838,7 @@ public class JSONFileWriter : IOutputFileWriter // Cycles if (!job.SavedInDeclarationMode) - body.Add("Cycles", job.Cycles.Select(x => GetRelativePath(x.CycleData.Source, Path.GetDirectoryName(filename))).ToArray()); + body.Add("Cycles", GetCycles(job, filename)); WriteFile(header, body, filename); } @@ -921,13 +972,11 @@ public class JSONFileWriter : IOutputFileWriter // Cycles if (!job.SavedInDeclarationMode) body.Add( - "Cycles", job.Cycles.Select(x => GetRelativePath(x.CycleData.Source, Path.GetDirectoryName(filename))).ToArray()); + "Cycles", GetCycles(job, filename)); WriteFile(header, body, filename); } - - public void SaveBatteryElectricJob(IEngineeringInputDataProvider input, string filename, bool DeclMode) { var basePath = Path.GetDirectoryName(filename); @@ -1064,11 +1113,112 @@ public class JSONFileWriter : IOutputFileWriter // Cycles if (!job.SavedInDeclarationMode) - body.Add("Cycles", job.Cycles.Select(x => GetRelativePath(x.CycleData.Source, Path.GetDirectoryName(filename))).ToArray()); + body.Add("Cycles", GetCycles(job, filename)); + + WriteFile(header, body, filename); + } + + private void SaveIEPCEJob(IEngineeringInputDataProvider input, string filename, bool declMode) + { + var basePath = Path.GetDirectoryName(filename); + + // Header + var header = GetHeader(IEPCVectoJobFormatVersion); + + // Body + var body = new Dictionary<string, object>(); + + // SavedInDeclMode = Cfg.DeclMode + + var job = input.JobInputData; + + body.Add("SavedInDeclMode", job.SavedInDeclarationMode); + //body.Add("EngineOnlyMode", job.JobType); + + // Main Files + body.Add("VehicleFile", GetRelativePath(job.Vehicle.DataSource.SourceFile, basePath)); + if (input.JobInputData.Vehicle.Components.GearboxInputData != null) { + body.Add("GearboxFile", + GetRelativePath(input.JobInputData.Vehicle.Components.GearboxInputData.DataSource.SourceFile, basePath)); + if (input.DriverInputData.GearshiftInputData != null) { + body.Add("TCU", GetRelativePath(input.DriverInputData.GearshiftInputData.Source, basePath)); + } + } + body.Add("Padd_electric", input.JobInputData.Vehicle.Components.AuxiliaryInputData.Auxiliaries.ElectricPowerDemand.Value()); + + if (!job.SavedInDeclarationMode && job.Vehicle is IVehicleEngineeringInputData engVehicle) { + var aux = engVehicle.Components.AuxiliaryInputData; + if (aux.BusAuxiliariesData != null) { + body.Add("BusAux", + GetRelativePath(job.Vehicle.Components.AuxiliaryInputData.BusAuxiliariesData.DataSource.SourceFile, + basePath)); + } + } + + var driver = input.DriverInputData; + + if (!job.SavedInDeclarationMode) { + body.Add("VACC", GetRelativePath(driver.AccelerationCurve.AccelerationCurve.Source, basePath)); + body.Add("EngineStopStartAtVehicleStopThreshold", driver.EngineStopStartData.ActivationDelay.Value()); + body.Add("EngineStopStartMaxOffTimespan", driver.EngineStopStartData.MaxEngineOffTimespan.Value()); + body.Add("EngineStopStartUtilityFactor", driver.EngineStopStartData.UtilityFactorStandstill); + body.Add("EngineStopStartUtilityFactorDriving", driver.EngineStopStartData.UtilityFactorDriving); + + body.Add("EcoRollMinSpeed", driver.EcoRollData.MinSpeed.AsKmph); + body.Add("EcoRollActivationDelay", driver.EcoRollData.ActivationDelay.Value()); + body.Add("EcoRollUnderspeedThreshold", driver.EcoRollData.UnderspeedThreshold.AsKmph); + + body.Add("EcoRollMaxAcceleration", driver.EcoRollData.AccelerationUpperLimit.Value()); + body.Add("PCCEnableSpeed", driver.PCCData.PCCEnabledSpeed.AsKmph); + body.Add("PCCMinSpeed", driver.PCCData.MinSpeed.AsKmph); + body.Add("PCCUnderspeed", driver.PCCData.Underspeed.AsKmph); + body.Add("PCCOverSpeed", driver.PCCData.OverspeedUseCase3.AsKmph); + body.Add("PCCPreviewDistanceUC1", driver.PCCData.PreviewDistanceUseCase1.Value()); + body.Add("PCCPreviewDistanceUC2", driver.PCCData.PreviewDistanceUseCase2.Value()); + + } + + if (!job.SavedInDeclarationMode) { + var dfTargetSpeed = driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup != null && + File.Exists(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source) + ? GetRelativePath(driver.Lookahead.CoastingDecisionFactorTargetSpeedLookup.Source, basePath) + : ""; + var dfVelocityDrop = driver.Lookahead.CoastingDecisionFactorVelocityDropLookup != null && + File.Exists(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source) + ? GetRelativePath(driver.Lookahead.CoastingDecisionFactorVelocityDropLookup.Source, basePath) + : ""; + body.Add("LAC", new Dictionary<string, object> { + { "Enabled", driver.Lookahead.Enabled }, + { "PreviewDistanceFactor", driver.Lookahead.LookaheadDistanceFactor }, + { "DF_offset", driver.Lookahead.CoastingDecisionFactorOffset }, + { "DF_scaling", driver.Lookahead.CoastingDecisionFactorScaling }, + { "DF_targetSpeedLookup", dfTargetSpeed }, + { "Df_velocityDropLookup", dfVelocityDrop }, + { "MinSpeed", driver.Lookahead.MinSpeed.AsKmph } + }); + } + + // Overspeed / EcoRoll + var overspeedDic = new Dictionary<string, object> { + { "Mode", driver.OverSpeedData.Enabled ? "Overspeed" : "Off" }, + { "MinSpeed", driver.OverSpeedData.MinSpeed.AsKmph }, + { "OverSpeed", driver.OverSpeedData.OverSpeed.AsKmph } + }; + + body.Add("OverSpeedEcoRoll", overspeedDic); + + // Cycles + if (!job.SavedInDeclarationMode) + body.Add("Cycles", GetCycles(job, filename)); WriteFile(header, body, filename); } + private string[] GetCycles(IEngineeringJobInputData job, string filename) + { + return job.Cycles.Select(x => x.CycleData.SourceType == DataSourceType.Embedded ? x.Name : GetRelativePath(x.CycleData.Source, Path.GetDirectoryName(filename))).ToArray(); + } + public void SaveEngineOnlyJob(IEngineeringInputDataProvider input, string filename, bool DeclMode) { var basePath = Path.GetDirectoryName(filename);