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

Skip to content
Snippets Groups Projects
Commit 085f708e authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

use fuel map interface in legacy vecto code

parent a125fee7
No related branches found
No related tags found
No related merge requests found
......@@ -3,296 +3,289 @@ Imports VectoAuxiliaries
Imports System.IO
Module mAAUX_Global
Public ClutchEngaged As Boolean
Public EngineDrivelinePower As Single
Public EngineDrivelineTorque As Single
Public EngineMotoringPower As Single
Public EngineSpeed As Integer
Public PreExistingAuxPower As Single
Public Idle As Boolean
Public InNeutral As Boolean
Public WithEvents advancedAuxModel As IAdvancedAuxiliaries
Public RunningCalc As Boolean = False
Public Internal_Engine_Power As Single
'This must be set in the main loop and will be used to determin
'the name of the file which would be offered to the model which is used
'by it internally. In Bus Auxiliaries, it is used for Actuations of the
'Doors during particular cycle types.
Public CurrentCycleFile As String = String.Empty
Public ClutchEngaged As Boolean
Public EngineDrivelinePower As Single
Public EngineDrivelineTorque As Single
Public EngineMotoringPower As Single
Public EngineSpeed As Integer
Public PreExistingAuxPower As Single
Public Idle As Boolean
Public InNeutral As Boolean
Public WithEvents advancedAuxModel As IAdvancedAuxiliaries
'This is a default setting of 3114 this will be set when the cycle begins.
Public CycleTimeInSeconds As Integer = 3114
Public RunningCalc As Boolean = False
Public Internal_Engine_Power As Single
'This must be set in the main loop and will be used to determin
'the name of the file which would be offered to the model which is used
'by it internally. In Bus Auxiliaries, it is used for Actuations of the
'Doors during particular cycle types.
Public CurrentCycleFile As String = String.Empty
Public Sub AAEventAuxiliaryEvent(ByRef sender As Object, ByVal message As String,
ByVal messageType As AdvancedAuxiliaryMessageType) Handles advancedAuxModel.AuxiliaryEvent
'This is a default setting of 3114 this will be set when the cycle begins.
Public CycleTimeInSeconds As Integer = 3114
Public Sub AAEventAuxiliaryEvent(ByRef sender As Object, ByVal message As String, ByVal messageType As AdvancedAuxiliaryMessageType) Handles advancedAuxModel.AuxiliaryEvent
WorkerMsg(messageType, message, "Advanced Auxiliaries")
End Sub
'AA-TB
Public Function InitialiseAdvancedAuxModel(aauxFile As String) As Boolean
WorkerMsg(messageType, message, "Advanced Auxiliaries")
Dim o As System.Runtime.Remoting.ObjectHandle
Dim result As Boolean = True
If VECTO_Global.VEC.AuxiliaryAssembly <> "CLASSIC" Then
End Sub
Try
'AA-TB
Public Function InitialiseAdvancedAuxModel(aauxFile As String) As Boolean
Dim o As System.Runtime.Remoting.ObjectHandle
Dim result As Boolean = True
'Open Assembly and invoke the validation using the paths supplied.
Try
o = Activator.CreateInstance(VEC.AuxiliaryAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
advancedAuxModel = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
If VECTO_Global.VEC.AuxiliaryAssembly <> "CLASSIC" Then
Dim message As String = String.Empty
Try
Dim fuelMap As cMAP = New cMAP()
'fuelMap = New cMAP()
fuelMap.FilePath = FilePathUtils.ResolveFilePath(fPATH(VEC.FilePath), ENG.FuelMapFullPath)
If Not fuelMap.ReadFile() Then
MessageBox.Show("Unable to read fuel map, aborting.")
Return False
End If
fuelMap.Triangulate()
'Set Statics
advancedAuxModel.VectoInputs.Cycle = DetermineCycleNameFromCurrentFile()
advancedAuxModel.VectoInputs.VehicleWeightKG = VEH.Mass
advancedAuxModel.VectoInputs.FuelMap = fuelMap 'ENG.FuelMapFullPath
advancedAuxModel.VectoInputs.FuelDensity = Cfg.FuelDens
'Open Assembly and invoke the validation using the paths supplied.
Try
o = Activator.CreateInstance(VEC.AuxiliaryAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
advancedAuxModel = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
'Set Signals
advancedAuxModel.Signals.TotalCycleTimeSeconds = CycleTimeInSeconds
advancedAuxModel.Signals.EngineIdleSpeed = ENG.Nidle
advancedAuxModel.RunStart(aauxFile, VEC.FilePath)
Dim message As String = String.Empty
'Set Statics
advancedAuxModel.VectoInputs.Cycle = DetermineCycleNameFromCurrentFile()
advancedAuxModel.VectoInputs.VehicleWeightKG = VEH.Mass
advancedAuxModel.VectoInputs.FuelMap = ENG.FuelMapFullPath
advancedAuxModel.VectoInputs.FuelDensity = Cfg.FuelDens
Catch Ex As Exception
'Set Signals
advancedAuxModel.Signals.TotalCycleTimeSeconds = CycleTimeInSeconds
advancedAuxModel.Signals.EngineIdleSpeed = ENG.Nidle
advancedAuxModel.RunStart(aauxFile, VEC.FilePath, message)
result = False
End Try
Return result
Catch Ex As Exception
result = False
Catch ex As Exception
End Try
Return result
End Try
Catch ex As Exception
End If
Return False
End Function
'AA-TB
''' <summary>
''' Discovers Advanced Auxiliaries Assemblies in 'targetDirectory' Directory
''' </summary>
''' <returns>List(Of cAdvancedAuxiliary)</returns>
''' <remarks>Target Directory would normally be the executing directory, but can be in another location.</remarks>
Public Function DiscoverAdvancedAuxiliaries() As List(Of cAdvancedAuxiliary)
End Try
Dim returnList As List(Of cAdvancedAuxiliary) = New List(Of cAdvancedAuxiliary)
Dim fileNameWoPath As String
Dim fileNameWoExtentsion As String
Dim advancedAuxiliary As cAdvancedAuxiliary
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
End If
'Create Default
returnList.Add(New cAdvancedAuxiliary())
Return False
End Function
Try
Dim fileEntries As String() = Directory.GetFiles(GetAAUXSourceDirectory)
' Process the list of files found in the directory.
Dim fileName As String
'AA-TB
''' <summary>
''' Discovers Advanced Auxiliaries Assemblies in 'targetDirectory' Directory
''' </summary>
''' <returns>List(Of cAdvancedAuxiliary)</returns>
''' <remarks>Target Directory would normally be the executing directory, but can be in another location.</remarks>
Public Function DiscoverAdvancedAuxiliaries() As List(Of cAdvancedAuxiliary)
For Each fileName In fileEntries
Dim returnList As List(Of cAdvancedAuxiliary) = New List(Of cAdvancedAuxiliary)
Dim fileNameWoPath As String
Dim fileNameWoExtentsion As String
Dim advancedAuxiliary As cAdvancedAuxiliary
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
If fileName.Contains("Auxiliaries.dll") Then
'Get filenamewith
fileNameWoPath = fFILE(fileName, True)
fileNameWoExtentsion = fFILE(fileName, False)
'Create Default
returnList.Add(New cAdvancedAuxiliary())
o = Activator.CreateInstance(fileNameWoExtentsion, "VectoAuxiliaries.AdvancedAuxiliaries")
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
advancedAuxiliary = New cAdvancedAuxiliary(iAdvancedAux.AuxiliaryName, iAdvancedAux.AuxiliaryVersion,
fileNameWoPath, fileNameWoExtentsion)
Try
Dim fileEntries As String() = Directory.GetFiles(GetAAUXSourceDirectory)
' Process the list of files found in the directory.
Dim fileName As String
returnList.Add(advancedAuxiliary)
For Each fileName In fileEntries
If fileName.Contains("Auxiliaries.dll") Then
End If
'Get filenamewith
fileNameWoPath = fFILE(fileName, True)
fileNameWoExtentsion = fFILE(fileName, False)
Next fileName
o = Activator.CreateInstance(fileNameWoExtentsion, "VectoAuxiliaries.AdvancedAuxiliaries")
Catch ex As Exception
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
MessageBox.Show("Unable to obtain Advanced Auxiliary Assemblies")
advancedAuxiliary = New cAdvancedAuxiliary(iAdvancedAux.AuxiliaryName, iAdvancedAux.AuxiliaryVersion, fileNameWoPath, fileNameWoExtentsion)
End Try
returnList.Add(advancedAuxiliary)
Return returnList
End Function
End If
'AA-TB
''' <summary>
''' Invokes Advanced Auxiliaries Configuration Screen
''' </summary>
''' <param name="vectoFilePath">String : Contains the path of the vecto file.</param>
''' <returns>Boolean. True if aauxFile is valid after operation , false of not.</returns>
''' <remarks></remarks>
Public Function ConfigureAdvancedAuxiliaries(ByVal assemblyName As String, ByVal version As String, filePath As String,
vectoFilePath As String) As Boolean
Next fileName
Catch ex As Exception
Dim auxList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim chosenAssembly As String
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
Dim result As Boolean
MessageBox.Show("Unable to obtain Advanced Auxiliary Assemblies")
chosenAssembly =
auxList.Find(Function(x) x.AssemblyName = assemblyName AndAlso x.AuxiliaryVersion = version).AssemblyName
If String.IsNullOrEmpty(chosenAssembly) Then Return False
End Try
'Open Assembly and invoke the configuration using the paths supplied.
Return returnList
Try
o = Activator.CreateInstance(chosenAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
End Function
iAdvancedAux.Configure(filePath, vectoFilePath)
'AA-TB
''' <summary>
''' Invokes Advanced Auxiliaries Configuration Screen
''' </summary>
''' <param name="vectoFilePath">String : Contains the path of the vecto file.</param>
''' <returns>Boolean. True if aauxFile is valid after operation , false of not.</returns>
''' <remarks></remarks>
Public Function ConfigureAdvancedAuxiliaries(ByVal assemblyName As String, ByVal version As String, filePath As String, vectoFilePath As String) As Boolean
Catch ex As Exception
result = False
Dim auxList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim chosenAssembly As String
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
Dim result As Boolean
End Try
chosenAssembly = auxList.Find(Function(x) x.AssemblyName = assemblyName AndAlso x.AuxiliaryVersion = version).AssemblyName
If String.IsNullOrEmpty(chosenAssembly) Then Return False
Return result
End Function
'Open Assembly and invoke the configuration using the paths supplied.
''' <summary>
''' Gets location of Advanced Auxiliaries Directory which contains all the assemblies available.
''' </summary>
''' <returns>Path where Auxiliaries can be found : String</returns>
''' <remarks></remarks>
Public Function GetAAUXSourceDirectory() As String
Try
o = Activator.CreateInstance(chosenAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
iAdvancedAux.Configure(filePath, vectoFilePath)
Return Path.GetDirectoryName(Application.ExecutablePath)
End Function
Catch ex As Exception
result = False
Public Function ResolveAAUXFilePath(vectoPath As String, filename As String) As String
End Try
'No Vecto Path supplied
If vectoPath = "" Then Return filename
Return result
'This is not relative
If filename.Contains(":\") Then
'Filepath is already absolute
Return filename
Else
Return vectoPath & filename
End If
End Function
End Function
Public Function ValidateAAUXFile(ByVal absoluteAAuxPath As String,
ByVal assemblyName As String,
ByVal version As String,
ByRef message As String) As Boolean
Dim auxList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim chosenAssembly As String
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
Dim result As Boolean
''' <summary>
''' Gets location of Advanced Auxiliaries Directory which contains all the assemblies available.
''' </summary>
''' <returns>Path where Auxiliaries can be found : String</returns>
''' <remarks></remarks>
Public Function GetAAUXSourceDirectory() As String
chosenAssembly =
auxList.Find(Function(x) x.AssemblyName = assemblyName AndAlso x.AuxiliaryVersion = version).AssemblyName
If String.IsNullOrEmpty(chosenAssembly) Then Return False
Return Path.GetDirectoryName(Application.ExecutablePath)
'Open Assembly and invoke the validation using the paths supplied.
Try
o = Activator.CreateInstance(chosenAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
End Function
result = iAdvancedAux.ValidateAAUXFile(absoluteAAuxPath, message)
Catch ex As Exception
Public Function ResolveAAUXFilePath(vectoPath As String, filename As String) As String
result = False
'No Vecto Path supplied
If vectoPath = "" Then Return filename
End Try
'This is not relative
If filename.Contains(":\") Then
Return result
End Function
'Filepath is already absolute
Return filename
Else
Return vectoPath & filename
End If
End Function
''' <summary>
''' Will Apply an algorithm to the DRI cycle file being used and attempt to return a consitant name
''' </summary>
''' <returns>String : Cylename IE, Bus_Interurban, Bus_Urban,etc</returns>
''' <remarks></remarks>
Public Function DetermineCycleNameFromCurrentFile() As String
'Get DriveFile without path and without extension
Dim driveFile As String = fFILE(CurrentCycleFile, False)
Public Function ValidateAAUXFile(ByVal absoluteAAuxPath As String,
ByVal assemblyName As String,
ByVal version As String,
ByRef message As String) As Boolean
Select Case (True)
Dim auxList As List(Of cAdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim chosenAssembly As String
Dim o As System.Runtime.Remoting.ObjectHandle
Dim iAdvancedAux As IAdvancedAuxiliaries
Dim result As Boolean
'DJN - update to make contains test case insensitive
Case driveFile.ToLower().Contains("heavy_urban") AndAlso driveFile.ToLower().Contains("bus")
Return "Heavy urban"
Case driveFile.ToLower().Contains("suburban") AndAlso driveFile.ToLower().Contains("bus")
Return "Suburban"
chosenAssembly = auxList.Find(Function(x) x.AssemblyName = assemblyName AndAlso x.AuxiliaryVersion = version).AssemblyName
If String.IsNullOrEmpty(chosenAssembly) Then Return False
Case driveFile.ToLower().Contains("urban") AndAlso driveFile.ToLower().Contains("bus")
Return "Urban"
Case driveFile.ToLower().Contains("interurban") AndAlso driveFile.ToLower().Contains("bus")
Return "Interurban"
'Open Assembly and invoke the validation using the paths supplied.
Try
o = Activator.CreateInstance(chosenAssembly, "VectoAuxiliaries.AdvancedAuxiliaries")
iAdvancedAux = DirectCast(o.Unwrap, IAdvancedAuxiliaries)
result = iAdvancedAux.ValidateAAUXFile(absoluteAAuxPath, message)
Catch ex As Exception
result = False
End Try
Return result
End Function
''' <summary>
''' Will Apply an algorithm to the DRI cycle file being used and attempt to return a consitant name
''' </summary>
''' <returns>String : Cylename IE, Bus_Interurban, Bus_Urban,etc</returns>
''' <remarks></remarks>
Public Function DetermineCycleNameFromCurrentFile() As String
'Get DriveFile without path and without extension
Dim driveFile As String = fFILE(CurrentCycleFile, False)
Select Case (True)
'DJN - update to make contains test case insensitive
Case driveFile.ToLower().Contains("heavy_urban") AndAlso driveFile.ToLower().Contains("bus")
Return "Heavy urban"
Case driveFile.ToLower().Contains("suburban") AndAlso driveFile.ToLower().Contains("bus")
Return "Suburban"
Case driveFile.ToLower().Contains("urban") AndAlso driveFile.ToLower().Contains("bus")
Return "Urban"
Case driveFile.ToLower().Contains("interurban") AndAlso driveFile.ToLower().Contains("bus")
Return "Interurban"
Case driveFile.ToLower().Contains("coach")
Return "Coach"
Case Else
WorkerMsg(tMsgID.Warn, String.Format("UnServiced Cycle Name '{0}' in Pneumatics Actuations Map 0 Actuations returned", driveFile), "Advanced Auxiliaries")
Return "UnknownCycleName"
End Select
Return "Urban"
End Function
Case driveFile.ToLower().Contains("coach")
Return "Coach"
Case Else
WorkerMsg(tMsgID.Warn,
String.Format("UnServiced Cycle Name '{0}' in Pneumatics Actuations Map 0 Actuations returned", driveFile),
"Advanced Auxiliaries")
Return "UnknownCycleName"
End Select
Return "Urban"
End Function
End Module
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment