Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
VectoJobForm.vb 40.6 KiB
Newer Older
		Dim s As Series
		Dim a As ChartArea
		Dim engOk As Boolean = False

		TbHVCclass.Text = ""
		TbVehCat.Text = ""
		TbMass.Text = ""
		TbAxleConf.Text = ""
		TbEngTxt.Text = ""
		TbGbxTxt.Text = ""
		PicVehicle.Image = Nothing
		PicBox.Image = Nothing

		Dim inputData As IEngineeringInputDataProvider = TryCast(JSONInputDataFactory.ReadComponentData(VECTOfile), 
		Dim vehicle As IVehicleEngineeringInputData = inputData.VehicleInputData
			Dim maxMass As Kilogram = vehicle.GrossVehicleMassRating					'CSng(fTextboxToNumString(TbMassMass.Text))
				s0 = DeclarationData.Segments.Lookup(vehicle.VehicleCategory, vehicle.AxleConfiguration, maxMass, 0.SI(Of Kilogram),
													True)
			Catch
			End Try
			If Not s0 Is Nothing Then
				HDVclass = s0.VehicleClass.GetClassNumber()

				If Cfg.DeclMode Then
					LvCycles.Items.Clear()
					For Each m0 In s0.Missions
						LvCycles.Items.Add(m0.MissionType.ToString())
					Next
				End If

			Else
				HDVclass = "-"
			End If

			PicVehicle.Image = ConvPicPath(If(s0 Is Nothing, -1, HDVclass.ToInt()), False) _
			'Image.FromFile(cDeclaration.ConvPicPath(HDVclass, False))

			TbHVCclass.Text = "HDV Class " & HDVclass
			TbVehCat.Text = vehicle.VehicleCategory.GetCategoryName()	'ConvVehCat(VEH0.VehCat, True)
			TbMass.Text = (vehicle.GrossVehicleMassRating.Value() / 1000) & " t"
			TbAxleConf.Text = vehicle.AxleConfiguration.GetName()	'ConvAxleConf(VEH0.AxleConf)
		Dim okCount As Integer = 0
		Dim engine As IEngineEngineeringInputData = inputData.EngineInputData
		'engine.FilePath = fFileRepl(TbENG.Text, GetPath(VECTOfile))
		Dim chart As Chart = New Chart
		chart.Width = PicBox.Width
		chart.Height = PicBox.Height
		'Dim FLD0 As EngineFullLoadCurve = New EngineFullLoadCurve
			engine.IdleSpeed.Value()
			Dim fullLoadCurve As FullLoadCurve = EngineFullLoadCurve.Create(engine.FullLoadCurve)
			s.Points.DataBindXY(fullLoadCurve.FullLoadEntries.Select(Function(x) x.EngineSpeed.AsRPM).ToArray(),
								fullLoadCurve.FullLoadEntries.Select(Function(x) x.TorqueFullLoad.Value()).ToArray())
			s.ChartType = SeriesChartType.FastLine
			s.BorderWidth = 2
			s.Color = Color.DarkBlue
			s.Name = "Full load"
			chart.Series.Add(s)
			s.Points.DataBindXY(fullLoadCurve.FullLoadEntries.Select(Function(x) x.EngineSpeed.AsRPM).ToArray(),
								fullLoadCurve.FullLoadEntries.Select(Function(x) x.TorqueDrag.Value()).ToArray())
			s.ChartType = SeriesChartType.FastLine
			s.BorderWidth = 2
			s.Color = Color.Blue
			s.Name = "Motoring"
			chart.Series.Add(s)
			okCount += 1
			pmax = fullLoadCurve.MaxPower.Value() / 1000 'FLD0.Pfull(FLD0.EngineRatedSpeed)
			TbEngTxt.Text = (engine.Displacement.Value() * 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW  " &
			Dim fuelConsumptionMap As FuelConsumptionMap = FuelConsumptionMapReader.Create(engine.FuelConsumptionMap)
			s = New Series
			s.Points.DataBindXY(fuelConsumptionMap.Entries.Select(Function(x) x.EngineSpeed.AsRPM).ToArray(),
								fuelConsumptionMap.Entries.Select(Function(x) x.Torque.Value()).ToArray())
			s.ChartType = SeriesChartType.Point
			s.MarkerSize = 3
			s.Color = Color.Red
			s.Name = "Map"
			chart.Series.Add(s)
			okCount += 1
		Dim gearbox As IGearboxEngineeringInputData = inputData.GearboxInputData
			TbGbxTxt.Text = gearbox.Gears.Count & "-Speed " & gearbox.Type.ShortName() & "  " & gearbox.ModelName
				If engOk Then
						'If FLD0.Init(ENG0.Nidle) Then '' use engine from below...
						'Dim engine As CombustionEngineData = ConvertToEngineData(FLD0, F_VECTO.n_idle)
						'Dim shiftLines As ShiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon(Gear - 1,
						'																			engine.FullLoadCurve, gears,
						'																			engine,
						'																			Double.Parse(LvGears.Items(0).SubItems(F_GBX.GearboxTbl.Ratio).Text,
						'																						CultureInfo.InvariantCulture),
						'																			(.rdyn / 1000.0).SI(Of Meter))
						's = New Series
						's.Points.DataBindXY(shiftLines.Upshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
						'					shiftLines.Upshift.Select(Function(pt) pt.Torque.Value()).ToList())
						's.ChartType = SeriesChartType.FastLine
						's.BorderWidth = 2
						's.Color = Color.DarkRed
						's.Name = "Upshift curve (" & i & ")"
						'MyChart.Series.Add(s)
						's = New Series
						's.Points.DataBindXY(
						'	shiftLines.Downshift.Select(Function(pt) pt.AngularSpeed.Value() / Constants.RPMToRad).ToList(),
						'	shiftLines.Downshift.Select(Function(pt) pt.Torque.Value()).ToList())
						's.ChartType = SeriesChartType.FastLine
						's.BorderWidth = 2
						's.Color = Color.DarkRed
						's.Name = "Downshift curve (" & i & ")"
						'MyChart.Series.Add(s)
						'End If
						'	pmax = FLD0.Pfull(FLD0.EngineRatedSpeed)
				For Each gear As ITransmissionInputData In gearbox.Gears
					If gear.ShiftPolygon Is Nothing OrElse gear.ShiftPolygon.Rows.Count = 0 Then Continue For
					Dim shiftPolygon As ShiftPolygon = ShiftPolygonReader.Create(gear.ShiftPolygon)
					s = New Series
					s.Points.DataBindXY(shiftPolygon.Upshift.Select(Function(x) x.AngularSpeed),
										shiftPolygon.Upshift.Select(Function(x) x.Torque))
					s.ChartType = SeriesChartType.FastLine
					s.BorderWidth = 2
					s.Color = Color.DarkRed
					s.Name = "Upshift curve"
					' MyChart.Series.Add(s) 'MQ 2016-06-20: do not plot shift lines in engine dialog

					s = New Series
					s.Points.DataBindXY(shiftPolygon.Downshift.Select(Function(x) x.AngularSpeed),
										shiftPolygon.Downshift.Select(Function(x) x.Torque))
					s.ChartType = SeriesChartType.FastLine
					s.BorderWidth = 2
					s.Color = Color.DarkRed
					s.Name = "Downshift curve"
					'MyChart.Series.Add(s) 'MQ 2016-06-20:do not plot shift lines in engine dialog

					okCount += 1
		If okCount > 0 Then

			a.Name = "main"

			a.AxisX.Title = "engine speed [1/min]"
			a.AxisX.TitleFont = New Font("Helvetica", 10)
			a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
			a.AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None
			a.AxisX.MajorGrid.LineDashStyle = ChartDashStyle.Dot

			a.AxisY.Title = "engine torque [Nm]"
			a.AxisY.TitleFont = New Font("Helvetica", 10)
			a.AxisY.LabelStyle.Font = New Font("Helvetica", 8)
			a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
			a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot

			a.AxisX.Minimum = 300
			a.BorderDashStyle = ChartDashStyle.Solid
			a.BorderWidth = 1

			a.BackColor = Color.GhostWhite

			chart.ChartAreas.Add(a)
			chart.Update()
			img = New Bitmap(chart.Width, chart.Height, PixelFormat.Format32bppArgb)
			chart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
	Private _contextMenuFiles As String()

	Private Sub OpenFiles(ParamArray files() As String)
		If files.Length = 0 Then Exit Sub

		_contextMenuFiles = files
		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
		CmOpenFile.Show(Windows.Forms.Cursor.Position)
	End Sub

	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
		Handles OpenWithToolStripMenuItem.Click
		If Not FileOpenAlt(_contextMenuFiles(0)) Then MsgBox("Failed to open file!")
	End Sub

	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
		Handles ShowInFolderToolStripMenuItem.Click
		If File.Exists(_contextMenuFiles(0)) Then
				Process.Start("explorer", "/select,""" & _contextMenuFiles(0) & "")
			Catch ex As Exception
				MsgBox("Failed to open file!")
			End Try
		Else
			MsgBox("File not found!")
		End If
	End Sub

#End Region


	'AA-TB
	Private Sub picAuxInfo_MouseEnter(sender As Object, e As EventArgs) Handles picAuxInfo.MouseEnter


		If cboAdvancedAuxiliaries.SelectedIndex = -1 Then Exit Sub

		'Get tooltip
		item = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary)

		If item.AuxiliaryVersion = "CLASSIC" Then

			ToolTip1.ToolTipTitle = "Classic Vecto Auxiliaries"
			ToolTip1.SetToolTip(picAuxInfo, "Uses original basic auxiliaries calculation")

		Else

			ToolTip1.ToolTipTitle = "Advanced Auxiliary Information"
			ToolTip1.SetToolTip(picAuxInfo, item.AuxiliaryName & " : Version=" & item.AuxiliaryVersion)

		End If
	End Sub

	'AA-TB
	Private Sub btnBrowseAAUXFile_Click(sender As Object, e As EventArgs) Handles btnBrowseAAUXFile.Click

		If String.IsNullOrEmpty(VECTOfile) Then
			MessageBox.Show(
				"Please complete and save a valid new .vecto file before adding/configuring advanced bus auxiliaries.")
			Return
		End If

		Dim aauxFileValidated As Boolean = False
		Dim fbAux As New FileBrowser("aaux", True, False)
		Dim message As String = String.Empty
		Dim absoluteAuxPath As String

		'If Classic is selected, then bail
		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then Return

		'Get Absolute Path for AAUX FILE.
		absoluteAuxPath = ResolveAAUXFilePath(GetPath(VECTOfile), txtAdvancedAuxiliaryFile.Text)

		'Set Extensions
		fbAux.Extensions = New String() {"AAUX"}

		Try

			assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary)

			Dim validAAUXFile As Boolean = ValidateAAUXFile(absoluteAuxPath, assembly.AssemblyName,
															assembly.AuxiliaryVersion, message)
			Dim fileExists As Boolean = File.Exists(absoluteAuxPath)

			If fileExists AndAlso validAAUXFile Then
				ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
											txtAdvancedAuxiliaryFile.Text, VECTOfile)
			Else

				Dim needToFindOrCreateFile As Boolean = True

				While needToFindOrCreateFile

					'Find / Create  file and configure.
					If fbAux.CustomDialog(absoluteAuxPath, False, False, FileBrowserFileExtensionMode.ForceExt, False, String.Empty) _
						Then
						txtAdvancedAuxiliaryFile.Text = GetFilenameWithoutDirectory(fbAux.Files(0), GetPath(VECTOfile))
						assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary)
							File.Exists(ResolveAAUXFilePath(GetPath(VECTOfile), txtAdvancedAuxiliaryFile.Text)) OrElse
							MsgBox("Do you want to create a new .AAUX file?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
							needToFindOrCreateFile = False
							ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
														txtAdvancedAuxiliaryFile.Text, VECTOfile)
						End If
					Else
						needToFindOrCreateFile = False
					End If

				End While

			End If

		Catch ex As Exception
			MessageBox.Show("There was an error configuring your Advanced Auxiliary File")
		End Try
	End Sub

	'AA-TB
	Private Sub cboAdvancedAuxiliaries_SelectedIndexChanged(sender As Object, e As EventArgs) _
		Handles cboAdvancedAuxiliaries.SelectedIndexChanged

		'Enable or otherwise the text box and browser button associated with Advanced Axuiliaries
		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then

			btnBrowseAAUXFile.Enabled = False
			txtAdvancedAuxiliaryFile.Enabled = False

		Else

			btnBrowseAAUXFile.Enabled = True
			txtAdvancedAuxiliaryFile.Enabled = True

		End If
	End Sub


	'AA-TB
	Private Sub btnAAUXOpen_Click(sender As Object, e As EventArgs) Handles btnAAUXOpen.Click

		OpenFiles(FileRepl(txtAdvancedAuxiliaryFile.Text, GetPath(VECTOfile)))
	End Sub

	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnDfTargetSpeed.Click
		If DriverDecisionFactorTargetSpeedFileBrowser.OpenDialog(FileRepl(tbLacDfTargetSpeedFile.Text, GetPath(VECTOfile))) _
			Then _
			tbLacDfTargetSpeedFile.Text = GetFilenameWithoutDirectory(DriverDecisionFactorTargetSpeedFileBrowser.Files(0),
																	GetPath(VECTOfile))