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

Skip to content
Snippets Groups Projects
F_VECTO.vb 37.9 KiB
Newer Older
		TbEngTxt.Text = ""
		TbGbxTxt.Text = ""
		PicVehicle.Image = Nothing
		PicBox.Image = Nothing
		VEH0.FilePath = fFileRepl(TbVEH.Text, fPATH(VECTOfile))
		If VEH0.ReadFile(False) Then
			Dim maxMass = (VEH0.MassMax * 1000).SI(Of Kilogram)()		   'CSng(fTextboxToNumString(TbMassMass.Text))

			Dim s0 As Segment = Nothing
			Try
				s0 = DeclarationData.Segments.Lookup(VEH0.VehCat, VEH0.AxleConf, maxMass, 0.SI(Of Kilogram), True)
			Catch
			End Try
Michael KRISPER's avatar
Michael KRISPER committed
			If Not s0 Is Nothing Then
					LvCycles.Items.Clear()
					For Each m0 In s0.Missions
						LvCycles.Items.Add(m0.MissionType.ToString())
			PicVehicle.Image = ConvPicPath(HDVclass, False)	'Image.FromFile(cDeclaration.ConvPicPath(HDVclass, False))
			TbHVCclass.Text = "HDV Class " & HDVclass
			TbVehCat.Text = VEH0.VehCat.GetCategoryName()	'ConvVehCat(VEH0.VehCat, True)
			TbMass.Text = VEH0.MassMax & " t"
			TbAxleConf.Text = VEH0.AxleConf.GetName() 'ConvAxleConf(VEH0.AxleConf)
		Dim OkCount = 0
		Dim ENG0 = New cENG
		ENG0.FilePath = fFileRepl(TbENG.Text, fPATH(VECTOfile))
		Dim MyChart = New Chart
		MyChart.Width = PicBox.Width
		MyChart.Height = PicBox.Height
Michael KRISPER's avatar
Michael KRISPER committed
		a = New ChartArea
		Dim FLD0 = New cFLD
		If ENG0.ReadFile(False) Then
			n_idle = ENG0.Nidle
			FLDfile = ENG0.PathFLD

			EngOK = True
			FLD0.FilePath = ENG0.PathFLD
			If FLD0.ReadFile(False, False) Then
Michael KRISPER's avatar
Michael KRISPER committed
				s = New Series
				s.Points.DataBindXY(FLD0.LnU, FLD0.LTq)
Michael KRISPER's avatar
Michael KRISPER committed
				s.ChartType = SeriesChartType.FastLine
				s.BorderWidth = 2
				s.Color = Color.DarkBlue
				s.Name = "Full load"
				MyChart.Series.Add(s)
Michael KRISPER's avatar
Michael KRISPER committed
				s = New Series
				s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag)
Michael KRISPER's avatar
Michael KRISPER committed
				s.ChartType = SeriesChartType.FastLine
				s.BorderWidth = 2
				s.Color = Color.Blue
				s.Name = "Motoring"
				MyChart.Series.Add(s)
				pmax = FLD0.Pfull(FLD0.fnUrated)
			TbEngTxt.Text = (ENG0.Displ / 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW  " & ENG0.ModelName
			Dim MAP0 = New cMAP
			MAP0.FilePath = ENG0.PathMAP
			If MAP0.ReadFile(False) Then
Michael KRISPER's avatar
Michael KRISPER committed
				s = New Series
				s.Points.DataBindXY(MAP0.nU, MAP0.Tq)
Michael KRISPER's avatar
Michael KRISPER committed
				s.ChartType = SeriesChartType.Point
				s.MarkerSize = 3
				s.Color = Color.Red
				s.Name = "Map"
				MyChart.Series.Add(s)
		Dim GBX0 = New cGBX
		GBX0.FilePath = fFileRepl(TbGBX.Text, fPATH(VECTOfile))
			TbGbxTxt.Text = GBX0.GearCount & "-Speed " & GBX0.gs_Type.ShortName() & "  " & GBX0.ModelName
					For i = 1 To GBX0.GearCount
						FLD0.FilePath = ENG0.PathFLD
						If FLD0.ReadFile(True, False) Then
							If FLD0.Init(ENG0.Nidle) Then

								'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)
							pmax = FLD0.Pfull(FLD0.fnUrated)
				f = New cFile_V3
				For i = 1 To GBX0.GearCount
					lM = New List(Of Single)
					lup = New List(Of Single)
					ldown = New List(Of Single)
					If f.OpenRead(GBX0.gsFile(i)) Then
							Do While Not f.EndOfFile
								line = f.ReadLine
								lM.Add(CSng(line(0)))
								lup.Add(CSng(line(1)))
								ldown.Add(CSng(line(2)))
							Loop
Michael KRISPER's avatar
Michael KRISPER committed
							s = New Series
							s.Points.DataBindXY(lup, lM)
Michael KRISPER's avatar
Michael KRISPER committed
							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
Michael KRISPER's avatar
Michael KRISPER committed
							s = New Series
							s.Points.DataBindXY(ldown, lM)
Michael KRISPER's avatar
Michael KRISPER committed
							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
						Catch ex As Exception
							f.Close()
						End Try
					End If

				Next

			End If

		End If

		If OkCount > 0 Then

			a.Name = "main"

			a.AxisX.Title = "engine speed [1/min]"
			a.AxisX.TitleFont = New Font("Helvetica", 10)
			a.AxisX.LabelStyle.Font = New Font("Helvetica", 8)
Michael KRISPER's avatar
Michael KRISPER committed
			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)
Michael KRISPER's avatar
Michael KRISPER committed
			a.AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None
			a.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dot
Michael KRISPER's avatar
Michael KRISPER committed
			a.BorderDashStyle = ChartDashStyle.Solid
			a.BorderWidth = 1

			a.BackColor = Color.GhostWhite

			MyChart.ChartAreas.Add(a)

			MyChart.Update()

Michael KRISPER's avatar
Michael KRISPER committed
			img = New Bitmap(MyChart.Width, MyChart.Height, PixelFormat.Format32bppArgb)
			MyChart.DrawToBitmap(img, New Rectangle(0, 0, PicBox.Width, PicBox.Height))
			PicBox.Image = img
#Region "Open File Context Menu"

	Private Sub OpenFiles(ParamArray files() As String)
		If files.Length = 0 Then Exit Sub
		CmFiles = files
		OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName
		CmOpenFile.Show(Windows.Forms.Cursor.Position)
Michael KRISPER's avatar
Michael KRISPER committed
	Private Sub OpenWithToolStripMenuItem_Click(sender As Object, e As EventArgs) _
		Handles OpenWithToolStripMenuItem.Click
		If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!")
	End Sub
Michael KRISPER's avatar
Michael KRISPER committed
	Private Sub ShowInFolderToolStripMenuItem_Click(sender As Object, e As EventArgs) _
		Handles ShowInFolderToolStripMenuItem.Click
Michael KRISPER's avatar
Michael KRISPER committed
		If File.Exists(CmFiles(0)) Then
Michael KRISPER's avatar
Michael KRISPER committed
				Process.Start("explorer", "/select,""" & CmFiles(0) & "")
			Catch ex As Exception
				MsgBox("Failed to open file!")
			End Try
		Else
			MsgBox("File not found!")
		End If
	End Sub
	'AA-TB
	Private Sub picAuxInfo_MouseEnter(sender As Object, e As EventArgs) Handles picAuxInfo.MouseEnter
		If cboAdvancedAuxiliaries.SelectedIndex = -1 Then Exit Sub
		'Get tooltip
		Dim item As cAdvancedAuxiliary
		item = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
		If item.AuxiliaryVersion = "CLASSIC" Then
			ToolTip1.ToolTipTitle = "Classic Vecto Auxiliaries"
			ToolTip1.SetToolTip(picAuxInfo, "Uses original basic auxiliaries calculation")
			ToolTip1.ToolTipTitle = "Advanced Auxiliary Information"
			ToolTip1.SetToolTip(picAuxInfo, item.AuxiliaryName & " : Version=" & item.AuxiliaryVersion)
	'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 cFileBrowser(True, False)
		Dim message As String = String.Empty
		Dim absoluteAuxPath As String
		Dim assembly As cAdvancedAuxiliary
		'If Classic is selected, then bail
		If cboAdvancedAuxiliaries.SelectedIndex = 0 Then Return
		'Get Absolute Path for AAUX FILE.
Michael KRISPER's avatar
Michael KRISPER committed
		absoluteAuxPath = ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)
		'Set Extensions
		fbAux.Extensions = New String() {"AAUX"}
			assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
Michael KRISPER's avatar
Michael KRISPER committed
			Dim validAAUXFile As Boolean = ValidateAAUXFile(absoluteAuxPath, assembly.AssemblyName,
															assembly.AuxiliaryVersion, message)
			Dim fileExists As Boolean = File.Exists(absoluteAuxPath)
			If fileExists AndAlso validAAUXFile Then
Michael KRISPER's avatar
Michael KRISPER committed
				ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
											txtAdvancedAuxiliaryFile.Text, VECTOfile)
				Dim needToFindOrCreateFile As Boolean = True
				While needToFindOrCreateFile
					'Find / Create  file and configure.
					If fbAux.CustomDialog(absoluteAuxPath, False, False, tFbExtMode.ForceExt, False, String.Empty) Then
						txtAdvancedAuxiliaryFile.Text = fFileWoDir(fbAux.Files(0), fPATH(VECTOfile))
						assembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, cAdvancedAuxiliary)
Michael KRISPER's avatar
Michael KRISPER committed
							File.Exists(ResolveAAUXFilePath(fPATH(VECTOfile), txtAdvancedAuxiliaryFile.Text)) OrElse
							MsgBox("Do you want to create a new .AAUX file?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
							needToFindOrCreateFile = False
Michael KRISPER's avatar
Michael KRISPER committed
							ConfigureAdvancedAuxiliaries(assembly.AssemblyName, assembly.AuxiliaryVersion,
														txtAdvancedAuxiliaryFile.Text, VECTOfile)
						End If
					Else
						needToFindOrCreateFile = False
					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
			btnBrowseAAUXFile.Enabled = True
			txtAdvancedAuxiliaryFile.Enabled = True
	'AA-TB
	Private Sub btnAAUXOpen_Click(sender As Object, e As EventArgs) Handles btnAAUXOpen.Click
		OpenFiles(fFileRepl(txtAdvancedAuxiliaryFile.Text, fPATH(VECTOfile)))

	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnDfTargetSpeed.Click
		If fbDfTargetSpeed.OpenDialog(fFileRepl(tbLacDfTargetSpeedFile.Text, fPATH(VECTOfile))) Then _
			tbLacDfTargetSpeedFile.Text = fFileWoDir(fbDfTargetSpeed.Files(0), fPATH(VECTOfile))