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

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

Merge branch 'develop' of...

parents 380a2f70 56946f69
No related branches found
No related tags found
No related merge requests found
Showing
with 2904 additions and 1494 deletions
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeEditing/GenerateMemberBody/WrapIntoRegions/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/CodeAnnotations/NamespacesWithAnnotations/=HashingTool_002EAnnotations/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeCleanup/SilentCleanupProfile/@EntryValue">Default: Reformat Code</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CommonFormatter/ALIGNMENT_TAB_FILL_STYLE/@EntryValue">USE_TABS_ONLY</s:String>
......
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Runtime.Remoting
Imports TUGraz.VectoCore.Models.BusAuxiliaries
Module AdvancedAuxiliariesModule
'Public WithEvents AdvancedAuxModel As IBusAuxiliaries
Dim _returnList As Dictionary(Of String, AdvancedAuxiliary) = Nothing
'Public Sub AAEventAuxiliaryEvent(ByRef sender As Object, ByVal message As String,
' ByVal messageType As AdvancedAuxiliaryMessageType) Handles AdvancedAuxModel.AuxiliaryEvent
' WorkerMsg(CType(messageType, MessageType), message, "Advanced Auxiliaries")
'End Sub
'AA-TB
'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 Dictionary(Of String, AdvancedAuxiliary)
If Not _returnList Is Nothing Then
Return _returnList
End If
_returnList = New Dictionary(Of String, AdvancedAuxiliary)
'Dim o As ObjectHandle
Dim busAux As BusAuxiliaries
'Create Default
Dim classicAux As AdvancedAuxiliary = New AdvancedAuxiliary()
_returnList.Add(classicAux.AssemblyName, classicAux)
'Try
' Dim fileEntries As String() = Directory.GetFiles(GetAAUXSourceDirectory)
' ' Process the list of files found in the directory.
' Dim fileName As String
' For Each fileName In fileEntries
' If fileName.Contains("Auxiliaries.dll") Then
' 'Get filenamewith
' Dim fileNameWoPath As String = GetFilenameWithoutPath(fileName, True)
' Dim fileNameWoExtentsion As String = GetFilenameWithoutPath(fileName, False)
' o = Activator.CreateInstance(fileNameWoExtentsion, "VectoAuxiliaries.AdvancedAuxiliaries")
busAux = new BusAuxiliaries(Nothing)
Dim advancedAuxiliary As AdvancedAuxiliary = New AdvancedAuxiliary(busAux.AuxiliaryName,
busAux.AuxiliaryVersion,
"BUSAUX", "BusAuxiliaries")
_returnList.Add(advancedAuxiliary.AuxiliaryVersion, advancedAuxiliary)
' End If
' Next fileName
'Catch ex As Exception
' MessageBox.Show("Unable to obtain Advanced Auxiliary Assemblies")
'End Try
Return _returnList
End Function
'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
Dim auxList As Dictionary(Of String, AdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim o As ObjectHandle
Dim busAux As BusAuxiliaries
Dim result As Boolean
Dim chosenAssembly As KeyValuePair(Of String, AdvancedAuxiliary) =
auxList.First(Function(x) x.Value.AssemblyName = assemblyName AndAlso x.Value.AuxiliaryVersion = version)
If String.IsNullOrEmpty(chosenAssembly.Value.AssemblyName) Then Return False
'Open Assembly and invoke the configuration using the paths supplied.
Try
'o = Activator.CreateInstance(chosenAssembly.Value.AssemblyName, "VectoAuxiliaries.AdvancedAuxiliaries")
busAux = New BusAuxiliaries(Nothing) ' DirectCast(o.Unwrap, IAdvancedAuxiliaries)
Configure(filePath, vectoFilePath)
Catch ex As Exception
result = False
End Try
Return result
End Function
Function Configure(filePath As String, vectoFilePath As String) As Boolean
Try
Dim frmAuxiliaryConfig As New frmAuxiliaryConfig(filePath, vectoFilePath)
frmAuxiliaryConfig.Show()
If frmAuxiliaryConfig.DialogResult <> DialogResult.OK Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
''' <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
Return Path.GetDirectoryName(Application.ExecutablePath)
End Function
Public Function ResolveAAUXFilePath(vectoPath As String, filename As String) As String
'No Vecto Path supplied
If vectoPath = "" Then Return filename
'This is not relative
If filename.Contains(":\") Then
'Filepath is already absolute
Return filename
Else
Return vectoPath & filename
End If
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 Dictionary(Of String, AdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
Dim busAux as BusAuxiliaries
Dim result As Boolean
Dim chosenAssembly As KeyValuePair(Of String, AdvancedAuxiliary) =
auxList.First(Function(x) x.Value.AssemblyName = assemblyName AndAlso x.Value.AuxiliaryVersion = version)
If String.IsNullOrEmpty(chosenAssembly.Value.AssemblyName) Then Return False
'Open Assembly and invoke the validation using the paths supplied.
Try
'o = Activator.CreateInstance(chosenAssembly.Value.AssemblyName, "VectoAuxiliaries.AdvancedAuxiliaries")
busAux = New BusAuxiliaries(Nothing) ' DirectCast(o.Unwrap, IAdvancedAuxiliaries)
'result = busAux.ValidateAAUXFile(absoluteAAuxPath, message)
Catch ex As Exception
result = False
End Try
Return result
End Function
End Module
......@@ -34,12 +34,16 @@ Public Module FileBrowserModule
Public ElectricMachineDragTorqueFileBrowser As FileBrowser
Public ElectricMachineEfficiencyMapFileBrowser As FileBrowser
public PropulsionTorqueLimitFileBrowser as FileBrowser
Public BatteryMaxCurrentCurveFileBrowser As FileBrowser
Public BatteryInternalResistanceCurveFileBrowser As FileBrowser
Public BatterySoCCurveFileBrowser As FileBrowser
Public HCUFileBrowser As FileBrowser
public BusAuxFileBrowser As FileBrowser
Public EngineFileBrowser As FileBrowser
Public GearboxFileBrowser As FileBrowser
Public TCUFileBrowser As FileBrowser
......
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>114, 20</value>
</metadata>
<metadata name="CmOpenFile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>226, 18</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btnBrowseCompressorMap.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAtVJREFUOE+FkmtIk2EYhhc6zU1zyjyAlZn5Q0QS6k/EMDDSQiuzkmxM5wpEA00S
zTzbsozQEDUyVKjQbejUPGQSyyjUmofysFRKU/M859J5qORu77s1KX/0wPXju7/vvp4X3o/RVsHv7pDy
0VklwIfaCPTXCzHQEPkXn5pEUDWJNH31kRGMf4eUocvF7GAShlqjQZ6H3qZjYUICQGliVfscvc+EGmNt
c0hhY/kONpYMrC/cwowqiYowchcYNaKRoa7mDDyfcuFRYpdnrBsEv7S3KT8XCTkUkq/3xGOj9xrQn0Cp
qQrGvnJ7uJTuwK58G4VJ8GMhh25eV29Ccp0yDmvd8SZBV7UA7sW2R5wfWsO+0ApO2ewMKlibE2N11siM
GCt6SL7YEQtdZxxUShECq7wQ9MQLZKnTfbbcqpQJuwxLDRWsTN+EbiobuslsLBsh+eybK3j/WgBfmQeq
1RKcqPalAgexlYIIrNMtQAVLE1lYGs/Cd8JYJrR6SK5ovoCzjTzI1VLE9gjgVsiBYza7jJvHAhGwkpkG
gfZrJhZHM6D5QtBf4ed0yKSnENLEg0L3AlHKIBxq2Ik9BRy4FNrA4bFBYJlgbhCQgno4DeqhNMwPpuFb
TyICan3waqUF0coAHGtxpwJvuSPcJBwqYBUzwby8TUEF84OpmFOlYnYghR69XcLHUdl+RLX7I6TVc4uA
W8aCZZy5hhnO8KECUpzuu4Gpj8lU0FgShuIHgeAVucK/0d0k8KzgwjGXje0xZiPMS/oyGVIgxcme65jo
MvyBNUWhqMw/j7ryi+Dlu+KwfDcVcNNYEOfx6E2Ypq0iVKN6GYNxZRLG3iVSQXnOcRSk+EGadxK1j4Jx
IMsZPhXOsE+2QnPZOcPmP9MtD+d0SMPkXTVCDLdeRadciPjIg7H6V3sNXzAYtrEMjmW0udxCZFZmjLZO
eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP39/QLg6NsG/v7+AgAA
AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////
/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4B1uDQEIil
di319/MQ////AQAAAAAAAAAAAAAAAAAAAAD/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
/gudtI5FRHEmhMbUvS7+/v4CAAAAAAAAAAAAAAAAAAAAAP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///8B7PDpJmOJS5s4aBnEjal8Wf39/A8AAAAAAAAAAAAAAAAAAAAA/////wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP7+/ga3ya0+PGsexzdnGO9Vfjut4OfcLP///wIAAAAAAAAAAAAAAAD/////AAAA/wAA
AP8AAAD/AAAA////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD///8B+vv6Fn+ea3E2ZhfeN2cY/DhnGc+nvJpJ/v7+CQAAAAAAAAAAAAAAAP//
//8AAAD/AAAA/wAAAP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+/gLU3s0vSHQstTZmF/Y2Zhf+NmYX6G2QV4zy9fAg////AQAA
AAAAAAAA/////wAAAP8AAAD/AAAA/wAAAP//////////////////////////////////////AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+DJqyilI1ZhbTNmYW/TZmF/82Zhf5P20hwMDP
tzj+/v4EAAAAAAAAAAD/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wLr7+cpX4ZFpTVmFfA2ZhX/NmYW/zZm
Fv42ZhfZh6N0ZPz9/BL+/v4BAAAAAP////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+B7TGqEI6ahnMNmcV/DZn
Ff82ZhX/NmYV/zVlF/RPeTOw2+TWLf7+/gIAAAAA/////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH4+vgZeppleTVm
FOE2ZxX+NmcV/zZnFf82ZhX/NmYV/TZmFtGhuJNO/v7+CgAAAAD/////AAAA/wAAAP8AAAD/AAAA////
//////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+As/b
yDBGcyi3NWYU9zVmFP82ZxX/NmcV/zZnFf82ZxX+NWYV7GeMT5fv8+0k////Af////8AAAD/AAAA/wAA
AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD+/v4Mlq+FVDRlE9Q1ZhT9NWYU/zVmFP82ZxX/NmcV/zZnFf82ZxX7PWwdxbzMsTz+/v4F/////wAA
AP8AAAD/AAAA/wAAAP///////////////////////////////////////////wAAAAAAAAAAAAAAAAAA
AAAAAAAA////Auju5Stbg0GqNWUU8jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZnFf41ZhTdgqBubfv8
+hX/////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP//////AAAAAAAA
AAAAAAAAAAAAAAAAAAD+/v4HscOlRThoGM41ZhT9NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zVm
FPVLdy6z1+DQL/7+/v8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA////
//8AAAAAAAAAAAAAAAAAAAAA////Afj59xt2l2F+NGUT4zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zVm
FP82ZxX/NmcV/TVmFdOctI1R/v7+/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD//////wAAAAAAAAAAAAAAAAAAAAD+/v4CzdnFMURxJbo1ZhT4NWYU/zVmFP81ZhT/NWYU/zVm
FP81ZhT/NWYU/zVmFP82ZxX/NWYU7mKISZ/8/Pv/////////////////////////////////////////
////////////////////////AAAAAAAAAAAAAAAAAAAAAP7+/gyUroNUNGUT1DVmFP01ZhT/NWYU/zVm
FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP82ZxX8O2obybfIq0L+/v4I/v7+Av39/QL9/v0C/f79Av3+
/QL9/v0C/f79Av3+/QL9/v0C/f79Av3+/QL9/v0C/f79AgAAAAD///8C5uziK1mBPqs0ZRPzNWYU/zVm
FP81ZhT/NWYU/zVmFP81ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFf41ZhThepplhNTezUPZ4tM12eLTNdni
0zXZ4tM12eLTNdni1DXZ4tQ12eLUNdrj1DXa49U12eLUNdrj1DXa49U1AAAAAP7+/givwqJGN2cWzjVm
FP01ZhT/NWYU/zVmFP81ZhT/NGYT/zVmFP41ZhT/NWYU/zVmFP81ZhT/NWYU/zZnFfg1ZhThRHImz0Rx
JspEcSfKRXEoykVyKMpFcinKRnMqykd0K8pIdCvKSXUsykt3LspIdCvKSXUsykt3Lsr//v8B9vj1HXSW
XoM0ZRPlNWYU/jVmFP81ZhT/NWYU/zVmFP82ZhX0U3w34DRlE/Q1ZhT/NWYU/zVmFP81ZhT/NWYU/zZn
Ff42ZxX9NmYV/TZmFv02Zhf9NmYX/TdnGP03Zxj9OWgZ/TppGv06ahv9PGwd/TppGv06ahv9PGwd/f7/
/gLK1sIyQnAkuzRlE/g1ZhT/NWYU/zVmFP81ZhT/NWYU+0dzKc2gt5GGP24g0zVmFP01ZhT/NWYU/zVm
FP81ZhT/NmcV/zZnFf82ZxX/NmYW/zZmF/82Zhf/N2cY/zdnGP84aBn/Omka/zpqG/87axz/Omka/zpq
G/87axz//f79DY+qflc0ZRPVNWYU/TVmFP81ZhT/NWYU/zVmFP41ZRTraY1RluLp3k1fhkWnNGUT8TVm
FP81ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhX/NmYW/zZmF/83Zxf/N2cY/zhoGf85aRr/Omob/ztr
HP85aRr/Omob/ztrHP/j6t8rVn88rDRlFPM1ZhT/NWYU/zVmFP81ZhT/NWYU/jRlE9KWr4VN/f39F5Cq
flU0ZRPVNWYU/jVmFP81ZhT/NWYU/zVmFP82ZxX/NmcV/zZmFf82Zhb/NmYX/zZmF/83Zxj/N2cY/zlp
Gv86ahv/O2sc/zlpGv86ahv/O2sc/6zAn0c3ZxbPNWYU/TVmFP81ZhT/NWYU/zVmFP81ZhT9PWwdycPS
ujb+/v4EwtC4Nz1sHco1ZhT9NWYU/zVmFP81ZhT/NWYU/zZnFf82ZxX/NmYV/zZmFv82Zhf/NmYX/zdn
GP83Zxj/OWka/zpqG/86ahv/OWka/zpqG/86ahv/cpRchjRlE+Y1ZhT+NWYU/zVmFP81ZhT/NWYU/zVm
FPZXgDyz6e7mLv///wPp7uYsWYE+rzVmFPQ1ZhT/NWYU/zVmFP81ZhT/NmcV/zZnFf82ZhT/NmYV/zZm
F/82Zhf/N2cX/zdnGP85aRr/Omob/zpqG/85aRr/Omob/zpqG/9BbyK6NGUU9jVmFP01ZhT9NWYU/TVm
FP01ZhT8NGUT3IGgbW78/PwW////Af39/RGJpXZiNGUT2DVmFPw1ZhT9NGUT/TVmFP02ZxX9NmcV/TZm
Ff02ZhX9NmYX/TZmF/03Zxf9N2cY/ThoGf06aRr9Omob/ThoGf06aRr9Omob/TZnFaE2ZxXINmcVyjZn
Fco2ZxXKNmcVyjZnFck4aBijr8KiNP7+/gUAAAAA/v7+A7rKrzA7ahuiNmcVyTZnFco2ZxXKN2cWyjdo
Fso3aBbKN2gWyjdnF8o3ZxjKOGcZyjhoGco5aBrKOmobyjtrHMo8ax3KOmobyjtrHMo8ax3KscSkKrHE
pDWxxKQ1scSkNbHEpDWxxKQ1scSkNbTGqCru8uwM///+AQAAAAAAAAAA8/bxC7bHqiqxxKQ1scSkNbHE
pDWxxKQ1scSlNbHEpTWxxKU1scSlNbHEpTWxxKU1scSmNbLEpjWyxaY1s8WnNbPFpzWyxaY1s8WnNbPF
pzX///8C////Av///wL///8C////Av///wL///8C////AgAAAAAAAAAAAAAAAAAAAAAAAAAA////Av//
/wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////Av///wL///8C////AgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////////gAP//4AD/9+AA/+fgAP/j4AD/4+B//8HgAf/B4AH/geAB/4D
gAf+A4AH/AGB//wBgAP4AYAD+ACAA/gAgAPwAAAD8AB//+AAP//gAAAAwAAAAMAAAADAIAAAgHAAAIBw
AAAAcAAAAPgAAAD4AAD///////////////8=
</value>
</data>
</root>
\ No newline at end of file

Imports System.Drawing.Imaging
Imports System.IO
Imports System.Linq
Imports System.Windows.Forms.DataVisualization.Charting
Imports TUGraz.VectoCommon.InputData
Imports TUGraz.VectoCommon.Models
Imports TUGraz.VectoCommon.Utils
Imports TUGraz.VectoCore.InputData.FileIO.JSON
Imports TUGraz.VectoCore.InputData.Reader.ComponentData
Imports TUGraz.VectoCore.Models.Declaration
Imports TUGraz.VectoCore.Models.SimulationComponent.Data
Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Battery
Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
Imports TUGraz.VectoCore.Utils
' Copyright 2017 European Union.
' Licensed under the EUPL (the 'Licence');
'
' * You may not use this work except in compliance with the Licence.
' * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
' * Unless required by applicable law or agreed to in writing,
' software distributed under the Licence is distributed on an "AS IS" basis,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
'
' See the LICENSE.txt for the specific language governing permissions and limitations.
''' <summary>
''' Engine Editor. Open and save .VENG files.
''' </summary>
''' <remarks></remarks>
Public Class BusAuxiliariesEngParametersForm
Private _busAuxParamsFile As String = ""
Public AutoSendTo As Boolean = False
Public JobDir As String = ""
Private _changed As Boolean = False
Private _contextMenuFiles As String()
'Before closing Editor: Check if file was changed and ask to save.
Private Sub F_BusAux_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then
e.Cancel = ChangeCheckCancel()
End If
End Sub
'Initialise.
Private Sub BusAuxFormLoad(sender As Object, e As EventArgs) Handles Me.Load
' initialize form on load - nothng to do right now
'pnInertia.Enabled = Not Cfg.DeclMode
_changed = False
NewBusAux()
End Sub
'Set generic values for Declaration mode.
Private Sub DeclInit()
If Not Cfg.DeclMode Then Exit Sub
End Sub
#Region "Toolbar"
Private Sub ToolStripBtNew_Click(sender As Object, e As EventArgs) Handles ToolStripBtNew.Click
NewBusAux()
End Sub
Private Sub ToolStripBtOpen_Click(sender As Object, e As EventArgs) Handles ToolStripBtOpen.Click
If EngineFileBrowser.OpenDialog(_busAuxParamsFile) Then
Try
OpenBusAuxParametersFile(EngineFileBrowser.Files(0))
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Error loading Engine File")
End Try
End If
End Sub
Private Sub ToolStripBtSave_Click(sender As Object, e As EventArgs) Handles ToolStripBtSave.Click
SaveOrSaveAs(False)
End Sub
Private Sub ToolStripBtSaveAs_Click(sender As Object, e As EventArgs) Handles ToolStripBtSaveAs.Click
SaveOrSaveAs(True)
End Sub
Private Sub ToolStripBtSendTo_Click(sender As Object, e As EventArgs) Handles ToolStripBtSendTo.Click
If ChangeCheckCancel() Then Exit Sub
If _busAuxParamsFile = "" Then
If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If Not SaveOrSaveAs(True) Then Exit Sub
Else
Exit Sub
End If
End If
If Not VectoJobForm.Visible Then
JobDir = ""
VectoJobForm.Show()
VectoJobForm.VectoNew()
Else
VectoJobForm.WindowState = FormWindowState.Normal
End If
VectoJobForm.TbENG.Text = GetFilenameWithoutDirectory(_busAuxParamsFile, JobDir)
End Sub
Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click
If File.Exists(Path.Combine(MyAppPath, "User Manual\help.html")) Then
Dim defaultBrowserPath As String = BrowserUtils.GetDefaultBrowserPath()
Process.Start(defaultBrowserPath,
String.Format("""file://{0}""", Path.Combine(MyAppPath, "User Manual\help.html#engine-editor")))
Else
MsgBox("User Manual not found!", MsgBoxStyle.Critical)
End If
End Sub
#End Region
'Create new empty Engine file.
Private Sub NewBusAux()
If ChangeCheckCancel() Then Exit Sub
'tbEquivalenceFactorDischarge.Text = ""
'tbMinSoC.Text = ""
'tbMaxSoC.Text = ""
'tbTargetSoC.Text = ""
'tbauxBufferTime.Text = ""
'tbAuxBufferChargeTime.Text = ""
DeclInit()
_busAuxParamsFile = ""
Text = "Hybrid Strategy Parameters Editor"
LbStatus.Text = ""
_changed = False
End Sub
'Open VENG file
Public Sub OpenBusAuxParametersFile(file As String)
If ChangeCheckCancel() Then Exit Sub
Dim inputData As IBusAuxiliariesEngineeringData = JSONInputDataFactory.ReadEngineeringBusAuxiliaries(file)
If Cfg.DeclMode Then
Select Case WrongMode()
Case 1
Close()
MainForm.RbDecl.Checked = Not MainForm.RbDecl.Checked
MainForm.OpenVectoFile(file)
Case -1
Exit Sub
End Select
End If
Dim basePath As String = Path.GetDirectoryName(file)
tbAlternatorEfficiency.Text = inputData.ElectricSystem.AlternatorEfficiency.ToGUIFormat()
tbCurrentDemand.Text = inputData.ElectricSystem.CurrentDemand.ToGUIFormat()
tbCurrentDemandEngineOffDriving.Text = inputData.ElectricSystem.CurrentDemandEngineOffDriving.ToGUIFormat()
tbCurrentDemandEngineOffStandstill.Text = inputData.ElectricSystem.CurrentDemandEngineOffStandstill.ToGUIFormat()
cbSmartElectric.Checked = inputData.ElectricSystem.SmartElectric
tbMaxAlternatorPower.Text = inputData.ElectricSystem.MaxAlternatorPower.ToGUIFormat()
tbElectricStorageCapacity.Text = inputData.ElectricSystem.ElectricStorageCapacity.ConvertToWattHour().Value.ToGUIFormat()
tbCompressorMap.Text = GetRelativePath(inputData.PneumaticSystem.CompressorMap.Source, basePath)
tbAverageAirDemand.Text = inputData.PneumaticSystem.AverageAirConsumed.ToGUIFormat()
tbCompressorRatio.Text = inputData.PneumaticSystem.GearRatio.ToGUIFormat()
cbSmartCompressor.Checked = inputData.PneumaticSystem.SmartAirCompression
tbHvacElectricPowerDemand.Text = inputData.HVACData.ElectricalPowerDemand.ToGUIFormat()
tbHvacMechPowerDemand.Text = inputData.HVACData.MechanicalPowerDemand.ToGUIFormat()
tbHvacAuxHeaterPwr.Text = inputData.HVACData.AuxHeaterPower.ToGUIFormat()
tbHvacHeatingDemand.Text = (inputData.HVACData.AverageHeatingDemand.Value() / 1e6).ToGUIFormat()
pnSmartElectricParams.Enabled = inputData.ElectricSystem.SmartElectric
DeclInit()
Text = GetFilenameWithoutPath(file, True)
LbStatus.Text = ""
_busAuxParamsFile = file
Activate()
_changed = False
End Sub
'Save or Save As function = true if file is saved
Private Function SaveOrSaveAs(ByVal saveAs As Boolean) As Boolean
If _busAuxParamsFile = "" Or saveAs Then
If HCUFileBrowser.SaveDialog(_busAuxParamsFile) Then
_busAuxParamsFile = HCUFileBrowser.Files(0)
Else
Return False
End If
End If
Return SaveParamsToFile(_busAuxParamsFile)
End Function
'Save VENG file to given filepath. Called by SaveOrSaveAs.
Private Function SaveParamsToFile(ByVal file As String) As Boolean
Dim busAuxParams As BusAuxEngineeringParams = New BusAuxEngineeringParams
busAuxParams.FilePath = file
busAuxParams.AlternatorEfficiency = tbAlternatorEfficiency.Text.ToDouble(0)
busAuxParams.CurrentDemandEngineOn = tbCurrentDemand.Text.ToDouble(0)
busAuxParams.CurrentDemandEngineOffDriving = tbCurrentDemandEngineOffDriving.Text.ToDouble(0)
busAuxParams.CurrentDemandEngineOffStandstill = tbCurrentDemandEngineOffStandstill.Text.ToDouble(0)
busAuxParams.SmartElectric = cbSmartElectric.Checked
busAuxParams.MaxAlternatorPower = tbMaxAlternatorPower.Text.ToDouble(0)
busAuxParams.ElectricStorageCapacity = tbElectricStorageCapacity.Text.ToDouble(0)
busAuxParams.PathCompressorMap = tbCompressorMap.Text
busAuxParams.AverageAirDemand = tbAverageAirDemand.Text.ToDouble(0)
busAuxParams.GearRatio = tbCompressorRatio.Text.ToDouble(0)
busAuxParams.SmartCompression = cbSmartCompressor.Checked
busAuxParams.ElectricPowerDemand = tbHvacElectricPowerDemand.Text.ToDouble(0)
busAuxParams.MechanicalPowerDemand = tbHvacMechPowerDemand.Text.ToDouble(0)
busAuxParams.AuxHeaterPower = tbHvacAuxHeaterPwr.Text.ToDouble(0)
busAuxParams.AverageHeatingDemand = tbHvacHeatingDemand.Text.ToDouble(0)
If Not busAuxParams.SaveFile Then
MsgBox("Cannot save to " & file, MsgBoxStyle.Critical)
Return False
End If
If AutoSendTo Then
If VectoJobForm.Visible Then
If UCase(FileRepl(VectoJobForm.tbBusAuxParams.Text, JobDir)) <> UCase(file) Then _
VectoJobForm.tbBusAuxParams.Text = GetFilenameWithoutDirectory(file, JobDir)
VectoJobForm.UpdatePic()
End If
End If
HCUFileBrowser.UpdateHistory(file)
Text = GetFilenameWithoutPath(file, True)
LbStatus.Text = ""
_changed = False
Return True
End Function
#Region "Track changes"
'Flags current file as modified.
Private Sub Change()
If Not _changed Then
LbStatus.Text = "Unsaved changes in current file"
_changed = True
End If
End Sub
' "Save changes ?" .... Returns True if User aborts
Private Function ChangeCheckCancel() As Boolean
If _changed Then
Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel)
Case MsgBoxResult.Yes
Return Not SaveOrSaveAs(False)
Case MsgBoxResult.Cancel
Return True
Case Else 'MsgBoxResult.No
_changed = False
Return False
End Select
Else
Return False
End If
End Function
#End Region
'Save and close
Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click
If SaveOrSaveAs(False) Then Close()
End Sub
'Close without saving (see FormClosing Event)
Private Sub ButCancel_Click(sender As Object, e As EventArgs) Handles ButCancel.Click
Close()
End Sub
#Region "Open File Context Menu"
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
Try
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
Private Sub tbMinSoC_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub tbMaxSoC_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub tbTargetSoC_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub tbauxBufferTime_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub tbAuxBufferChargeTime_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub tbEquivalenceFactor_TextChanged(sender As Object, e As EventArgs)
Change()
End Sub
Private Sub cbSmartElectric_CheckedChanged(sender As Object, e As EventArgs) Handles cbSmartElectric.CheckedChanged
pnSmartElectricParams.Enabled = cbSmartElectric.Checked
End Sub
#End Region
End Class
......@@ -10,6 +10,7 @@ Imports TUGraz.VectoCore.InputData.FileIO.JSON
Imports TUGraz.VectoCore.InputData.Reader.ComponentData
Imports TUGraz.VectoCore.Models.Declaration
Imports TUGraz.VectoCore.Models.SimulationComponent.Data
Imports TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor
Imports TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
Imports TUGraz.VectoCore.Utils
' Copyright 2017 European Union.
......
......@@ -563,7 +563,7 @@ Partial Class HybridStrategyParamsForm
Me.Name = "HybridStrategyParamsForm"
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Electric Energy Storage"
Me.Text = "Hybrid Strategy Parameters"
Me.ToolStrip1.ResumeLayout(false)
Me.ToolStrip1.PerformLayout
Me.StatusStrip1.ResumeLayout(false)
......
......@@ -150,11 +150,11 @@ Imports TUGraz.VectoCore.Utils
ElectricMachineMaxTorqueFileBrowser = New FileBrowser("vemp")
ElectricMachineEfficiencyMapFileBrowser = New FileBrowser("vemo")
HCUFileBrowser = New FileBrowser("vhctl")
BusAuxFileBrowser = new FileBrowser(".vaux")
BatteryMaxCurrentCurveFileBrowser = new FileBrowser("vimax")
BatteryInternalResistanceCurveFileBrowser = New FileBrowser("vbatr")
BatterySoCCurveFileBrowser = New FileBrowser("vbatv")
PropulsionTorqueLimitFileBrowser = new FileBrowser("vtqp")
ModalResultsFileBrowser = New FileBrowser("vmod")
......@@ -191,6 +191,8 @@ Imports TUGraz.VectoCore.Utils
BatteryInternalResistanceCurveFileBrowser.Extensions = New String() {"vbatr"}
BatterySoCCurveFileBrowser.Extensions = New String() {"vbatv"}
HCUFileBrowser.Extensions = New String() {"vhctl"}
BusAuxFileBrowser.Extensions = New String(){"vaux"}
PropulsionTorqueLimitFileBrowser.Extensions = new String(){"vtqp"}
ModalResultsFileBrowser.Extensions = New String() {"vmod"}
End Sub
......
This diff is collapsed.
......@@ -208,9 +208,24 @@
eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>468, 15</value>
</metadata>
<data name="btnBrowsBusAuxParams.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAtVJREFUOE+FkmtIk2EYhhc6zU1zyjyAlZn5Q0QS6k/EMDDSQiuzkmxM5wpEA00S
zTzbsozQEDUyVKjQbejUPGQSyyjUmofysFRKU/M859J5qORu77s1KX/0wPXju7/vvp4X3o/RVsHv7pDy
0VklwIfaCPTXCzHQEPkXn5pEUDWJNH31kRGMf4eUocvF7GAShlqjQZ6H3qZjYUICQGliVfscvc+EGmNt
c0hhY/kONpYMrC/cwowqiYowchcYNaKRoa7mDDyfcuFRYpdnrBsEv7S3KT8XCTkUkq/3xGOj9xrQn0Cp
qQrGvnJ7uJTuwK58G4VJ8GMhh25eV29Ccp0yDmvd8SZBV7UA7sW2R5wfWsO+0ApO2ewMKlibE2N11siM
GCt6SL7YEQtdZxxUShECq7wQ9MQLZKnTfbbcqpQJuwxLDRWsTN+EbiobuslsLBsh+eybK3j/WgBfmQeq
1RKcqPalAgexlYIIrNMtQAVLE1lYGs/Cd8JYJrR6SK5ovoCzjTzI1VLE9gjgVsiBYza7jJvHAhGwkpkG
gfZrJhZHM6D5QtBf4ed0yKSnENLEg0L3AlHKIBxq2Ik9BRy4FNrA4bFBYJlgbhCQgno4DeqhNMwPpuFb
TyICan3waqUF0coAHGtxpwJvuSPcJBwqYBUzwby8TUEF84OpmFOlYnYghR69XcLHUdl+RLX7I6TVc4uA
W8aCZZy5hhnO8KECUpzuu4Gpj8lU0FgShuIHgeAVucK/0d0k8KzgwjGXje0xZiPMS/oyGVIgxcme65jo
MvyBNUWhqMw/j7ryi+Dlu+KwfDcVcNNYEOfx6E2Ypq0iVKN6GYNxZRLG3iVSQXnOcRSk+EGadxK1j4Jx
IMsZPhXOsE+2QnPZOcPmP9MtD+d0SMPkXTVCDLdeRadciPjIg7H6V3sNXzAYtrEMjmW0udxCZFZmjLZO
eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC
</value>
</data>
<data name="btnDfVelocityDrop.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
......
......@@ -49,15 +49,6 @@ Public Class VectoJobForm
Public Property JobType As VectoSimulationJobType
'AA-TB
'Populate Advanced Auxiliaries
Private Sub PopulateAdvancedAuxiliaries()
'Scan the program directory for DLL's which are AdvancedAuxiliaries and display
Dim aList As Dictionary(Of String, AdvancedAuxiliary) = DiscoverAdvancedAuxiliaries()
cboAdvancedAuxiliaries.DataSource = aList.Select(Function(x) x.Value).ToList()
cboAdvancedAuxiliaries.DisplayMember = "AuxiliaryName"
End Sub
'Initialise form
......@@ -81,6 +72,7 @@ Public Class VectoJobForm
LvAux.Columns(AuxViewColumns.AuxInputOrTech).Text = "Input File"
End If
TbAuxPAdd.Enabled = Not Cfg.DeclMode
gbBusAux.Enabled = Not cfg.DeclMode
'CbEngOnly.Enabled = Not Cfg.DeclMode
GrCycles.Enabled = Not Cfg.DeclMode
......@@ -96,8 +88,6 @@ Public Class VectoJobForm
gbPCC.Enabled = Not Cfg.DeclMode
_changed = False
'AA-TB
PopulateAdvancedAuxiliaries()
cbGearshiftStrategy.DataSource = PowertrainBuilder.GetRegisteredShiftStrategies(Nothing).Select(Function(entry) New With {.Value = entry.Item1, .Label = entry.Item2}).ToList()
cbGearshiftStrategy.DisplayMember = "Label"
......@@ -500,8 +490,6 @@ Public Class VectoJobForm
Dim declarationInput As IDeclarationInputDataProvider = CType(inputData, IDeclarationInputDataProvider)
Dim auxInput As IAuxiliariesDeclarationInputData = declarationInput.JobInputData.Vehicle.Components.AuxiliaryInputData
cboAdvancedAuxiliaries.SelectedIndex = 0
cboAdvancedAuxiliaries.Enabled = False
LvAux.Items.Clear()
Dim entry As IAuxiliaryDeclarationInputData
For Each entry In auxInput.Auxiliaries
......@@ -517,24 +505,8 @@ Public Class VectoJobForm
TbDesMaxFile.Text =
If(driver.AccelerationCurve Is Nothing, "", GetRelativePath(driver.AccelerationCurve.AccelerationCurve.Source, _basePath))
cboAdvancedAuxiliaries.Enabled = True
Dim auxInput As IAuxiliariesEngineeringInputData = inputData.JobInputData.Vehicle.Components.AuxiliaryInputData
For Each item As AdvancedAuxiliary In cboAdvancedAuxiliaries.Items
If _
AuxiliaryModelHelper.Parse(item.AssemblyName) = auxInput.AuxiliaryAssembly AndAlso
auxInput.AuxiliaryVersion = item.AuxiliaryVersion _
Then
cboAdvancedAuxiliaries.SelectedItem = item
Exit For
End If
Next
tbElectricAuxConstant.Text = inputData.JobInputData.Vehicle.Components.AuxiliaryInputData.ElectricAuxPower.ToGUIFormat()
'AA-TB
'Assign any previously saved Axiliary FilePath
txtAdvancedAuxiliaryFile.Text =
If _
(IO.File.Exists(auxInput.AdvancedAuxiliaryFilePath), GetRelativePath(auxInput.AdvancedAuxiliaryFilePath, _basePath),
"")
LvAux.Items.Clear()
For Each entry As IAuxiliaryEngineeringInputData In auxInput.Auxiliaries
......@@ -615,6 +587,16 @@ Public Class VectoJobForm
cbGearshiftStrategy.SelectedValue = inputData.JobInputData.ShiftStrategy
End If
if (Not inputData.JobInputData.Vehicle.Components.AuxiliaryInputData.BusAuxiliariesData Is nothing) Then
cbEnableBusAux.Checked = True
tbBusAuxParams.Text = GetRelativePath(inputData.JobInputData.Vehicle.Components.AuxiliaryInputData.BusAuxiliariesData.DataSource.SourceFile, _basePath)
pnBusAux.Enabled = true
Else
cbEnableBusAux.Checked = False
tbBusAuxParams.Text = ""
pnBusAux.Enabled = False
End If
DeclInit()
......@@ -650,28 +632,6 @@ Public Class VectoJobForm
Private Function VECTOsave(file As String) As Boolean
Dim message As String = String.Empty
'AA-TB
'Validation of Auxiliary Types/Advanced Auxiliaries
'if not classic, check the file is valid, if not fail the operation and alert user.
If cboAdvancedAuxiliaries.SelectedIndex > 0 Then
'resolve absolute path for auxiliary file.
Dim absoluteAAUxFile As String = ResolveAAUXFilePath(GetPath(VectoFile), txtAdvancedAuxiliaryFile.Text)
Dim aaAssemblyName As String = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary).AssemblyName
Dim aaAssemblyVersion As String = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary).AuxiliaryVersion
If Not ValidateAAUXFile(absoluteAAUxFile, aaAssemblyName, aaAssemblyVersion, message) Then
MessageBox.Show(
String.Format("You have selected an advanced auxiliary *Auxiliary Type*, but the file specified is invalid :{0}",
message))
Return False
End If
End If
Dim vectoJob As VectoJob = New VectoJob
vectoJob.JobType = JobType
vectoJob.FilePath = file
......@@ -694,11 +654,6 @@ Public Class VectoJobForm
'a_DesMax
vectoJob.DesMaxFile = TbDesMaxFile.Text
'AA-TB
vectoJob.AuxiliaryAssembly = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary).AssemblyName
vectoJob.AuxiliaryVersion = DirectCast(cboAdvancedAuxiliaries.SelectedItem, AdvancedAuxiliary).AuxiliaryVersion
vectoJob.AdvancedAuxiliaryFilePath = txtAdvancedAuxiliaryFile.Text
For Each lv0 As ListViewItem In LvAux.Items
Dim auxEntry As VectoJob.AuxEntry = New VectoJob.AuxEntry
......@@ -718,6 +673,13 @@ Public Class VectoJobForm
vectoJob.AuxElPadd = tbElectricAuxConstant.Text.ToDouble(0)
if cbEnableBusAux.Checked AndAlso Not string.IsNullOrWhiteSpace(tbBusAuxParams.Text) Then
vectoJob.UseBusAux = true
vectoJob.PathBusAux = tbBusAuxParams.Text
Else
vectoJob.UseBusAux = false
End If
'vectoJob.EngineOnly = JobType = VectoSimulationJobType.EngineOnlySimulation
vectoJob.OverSpeedOn = RdOverspeed.Checked
......@@ -802,7 +764,6 @@ Public Class VectoJobForm
tbLacDfTargetSpeedFile.Text = ""
tbLacDfVelocityDropFile.Text = ""
cboAdvancedAuxiliaries.Enabled = Not Cfg.DeclMode
'---------------------------------------------------
DeclInit()
......@@ -1506,123 +1467,6 @@ lbDlog:
#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
Dim item As AdvancedAuxiliary
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", False, False)
Dim message As String = String.Empty
Dim absoluteAuxPath As String
Dim assembly As AdvancedAuxiliary
'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)
If _
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 btnDfTargetSpeed_Click(sender As Object, e As EventArgs) Handles btnDfTargetSpeed.Click
If DriverDecisionFactorTargetSpeedFileBrowser.OpenDialog(FileRepl(tbLacDfTargetSpeedFile.Text, GetPath(VectoFile))) _
Then _
......@@ -1702,10 +1546,60 @@ lbDlog:
End Try
Try
If Not Trim(f) = "" Then HybridStrategyParamsForm.OpenHybridStrategyParametersFile(f)
Catch ex As Exception
MsgBox("Failed to open Hybrid strategy parameters File: " + ex.Message)
End Try
End Sub
Private Sub cbEnableBusAux_CheckedChanged(sender As Object, e As EventArgs) Handles cbEnableBusAux.CheckedChanged
pnBusAux.Enabled = not Cfg.DeclMode AndAlso cbEnableBusAux.Checked
End Sub
Private Sub btnBusAuxP_Click(sender As Object, e As EventArgs) Handles btnBusAuxP.Click
Dim f As String
f = FileRepl(tbBusAuxParams.Text, GetPath(VectoFile))
'Thus Veh-file is returned
BusAuxiliariesEngParametersForm.JobDir = GetPath(VectoFile)
BusAuxiliariesEngParametersForm.AutoSendTo = True
If Not Trim(f) = "" Then
If Not File.Exists(f) Then
MsgBox("File not found!")
Exit Sub
End If
End If
If Not BusAuxiliariesEngParametersForm.Visible Then
BusAuxiliariesEngParametersForm.Show()
Else
If BusAuxiliariesEngParametersForm.WindowState = FormWindowState.Minimized Then BusAuxiliariesEngParametersForm.WindowState = FormWindowState.Normal
BusAuxiliariesEngParametersForm.BringToFront()
End If
Dim vehicleType As VehicleCategory
Try
If Not Trim(f) = "" Then
Dim vehInput As IVehicleDeclarationInputData =
CType(JSONInputDataFactory.ReadComponentData(FileRepl(TbVEH.Text, GetPath(VectoFile))),
IEngineeringInputDataProvider).JobInputData.Vehicle
vehicleType = vehInput.VehicleCategory
End If
Catch ex As Exception
vehicleType = VehicleCategory.RigidTruck
End Try
Try
If Not Trim(f) = "" Then BusAuxiliariesEngParametersForm.OpenBusAuxParametersFile(f)
Catch ex As Exception
MsgBox("Failed to open Gearbox File: " + ex.Message)
End Try
End Sub
Private Sub btnBrowsBusAuxParams_Click(sender As Object, e As EventArgs) Handles btnBrowsBusAuxParams.Click
If BusAuxFileBrowser.OpenDialog(FileRepl(tbBusAuxParams.Text, GetPath(VectoFile))) Then
tbBusAuxParams.Text = GetFilenameWithoutDirectory(BusAuxFileBrowser.Files(0), GetPath(VectoFile))
End If
End Sub
End Class
......
This diff is collapsed.
This diff is collapsed.
'AA-TB
Public Class AdvancedAuxiliary
'Private properties. Set on Constructor
Private ReadOnly _auxiliaryName As String
Private ReadOnly _auxiliaryVersion As String
Private ReadOnly _fileName As String
Private ReadOnly _assemblyName As String
'Public Readonly properties
Public ReadOnly Property AuxiliaryName As String
Get
Return _auxiliaryName
End Get
End Property
Public ReadOnly Property AuxiliaryVersion As String
Get
Return _auxiliaryVersion
End Get
End Property
Public ReadOnly Property AssemblyName As String
Get
Return _assemblyName
End Get
End Property
'Constructor(s)
Public Sub New()
_auxiliaryName = "Classic Vecto Auxiliary"
_auxiliaryVersion = "CLASSIC"
_fileName = "CLASSIC"
_assemblyName = "CLASSIC"
End Sub
Public Sub New(auxiliaryName As String, auxiliaryVersion As String, fileName As String, assemblyName As String)
_auxiliaryName = auxiliaryName
_auxiliaryVersion = auxiliaryVersion
_fileName = fileName
_assemblyName = assemblyName
End Sub
End Class
Imports System.Collections.Generic
Imports System.ComponentModel.DataAnnotations
Imports System.IO
Imports System.Linq
Imports TUGraz.VECTO.Input_Files
Imports TUGraz.VectoCommon.Exceptions
Imports TUGraz.VectoCommon.InputData
Imports TUGraz.VectoCommon.Models
Imports TUGraz.VectoCommon.Utils
Imports TUGraz.VectoCore.Utils
Public Class BusAuxEngineeringParams
Implements IBusAuxiliariesEngineeringData,
IBusAuxPneumaticSystemEngineeringData,
IBusAuxElectricSystemEngineeringData,
IBusAuxHVACData
Private _filePath As String
Private _myPath As String
public CurrentDemandEngineOn as double
public CurrentDemandEngineOffDriving as double
public CurrentDemandEngineOffStandstill as double
public AlternatorEfficiency as double
public MaxAlternatorPower as double
public ElectricStorageCapacity as double
public SmartElectric As Boolean
public CompressorMap as SubPath
public AverageAirDemand as Double
public GearRatio As Double
public SmartCompression as Boolean
public ElectricPowerDemand as Double
public MechanicalPowerDemand As Double
public AuxHeaterPower As Double
public AverageHeatingDemand As Double
Public Sub New()
_myPath = ""
_filePath = ""
CompressorMap = new SubPath()
SetDefault()
End Sub
Private Sub SetDefault()
CompressorMap.Clear()
End Sub
Public Function SaveFile() As Boolean
Dim validationResults As IList(Of ValidationResult) =
Validate(If(Cfg.DeclMode, ExecutionMode.Declaration, ExecutionMode.Engineering), VectoSimulationJobType.ParallelHybridVehicle, Nothing, Nothing, False)
If validationResults.Count > 0 Then
Dim messages As IEnumerable(Of String) =
validationResults.Select(Function(r) r.ErrorMessage + String.Join(", ", r.MemberNames.Distinct()))
MsgBox("Invalid input." + Environment.NewLine + String.Join(Environment.NewLine, messages), MsgBoxStyle.OkOnly,
"Failed to save strategy parameters")
Return False
End If
Try
Dim writer As JSONFileWriter = New JSONFileWriter()
writer.SaveBusAuxEngineeringParameters(Me, _filePath, Cfg.DeclMode)
Catch ex As Exception
MsgBox("Faled to write Strategy Parameters file: " + ex.Message)
Return False
End Try
Return True
End Function
Public Property FilePath() As String
Get
Return _filePath
End Get
Set(ByVal value As String)
_filePath = value
If _filePath = "" Then
_myPath = ""
Else
_myPath = Path.GetDirectoryName(_filePath) & "\"
End If
End Set
End Property
Public Property PathCompressorMap(Optional ByVal original As Boolean = False) As String
Get
If original Then
Return CompressorMap.OriginalPath
Else
Return CompressorMap.FullPath
End If
End Get
Set(ByVal value As String)
CompressorMap.Init(_myPath, value)
End Set
End Property
Public ReadOnly Property DataSource As DataSource Implements IBusAuxiliariesEngineeringData.DataSource
get
Return new DataSource() With{ .SourceFile = FilePath }
End Get
End Property
Public ReadOnly Property PneumaticSystem As IBusAuxPneumaticSystemEngineeringData Implements IBusAuxiliariesEngineeringData.PneumaticSystem
get
return me
End Get
End Property
Public ReadOnly Property ElectricSystem As IBusAuxElectricSystemEngineeringData Implements IBusAuxiliariesEngineeringData.ElectricSystem
get
Return me
End Get
End Property
Public ReadOnly Property HVACData As IBusAuxHVACData Implements IBusAuxiliariesEngineeringData.HVACData
get
Return me
End Get
End Property
Public ReadOnly Property PS_CompressorMap As TableData Implements IBusAuxPneumaticSystemEngineeringData.CompressorMap
get
if Not file.Exists(CompressorMap.FullPath) Then
Throw new VectoException("Compressor Map is missing or invalid")
End If
Return VectoCSVFile.Read(CompressorMap.FullPath)
End Get
End Property
Public ReadOnly Property PS_AverageAirConsumed As NormLiterPerSecond Implements IBusAuxPneumaticSystemEngineeringData.AverageAirConsumed
get
Return AverageAirDemand.SI(Of NormLiterPerSecond)
End Get
End Property
Public ReadOnly Property PS_SmartAirCompression As Boolean Implements IBusAuxPneumaticSystemEngineeringData.SmartAirCompression
get
Return SmartCompression
End Get
End Property
Public ReadOnly Property PS_GearRatio As Double Implements IBusAuxPneumaticSystemEngineeringData.GearRatio
get
Return GearRatio
End Get
End Property
Public ReadOnly Property ES_AlternatorEfficiency As Double Implements IBusAuxElectricSystemEngineeringData.AlternatorEfficiency
get
Return AlternatorEfficiency
End Get
End Property
Public ReadOnly Property ES_CurrentDemand As Ampere Implements IBusAuxElectricSystemEngineeringData.CurrentDemand
get
return CurrentDemandEngineOn.SI(of Ampere)
End Get
End Property
Public ReadOnly Property ES_SmartElectric As Boolean Implements IBusAuxElectricSystemEngineeringData.SmartElectric
get
Return SmartElectric
End Get
End Property
Public ReadOnly Property ES_MaxAlternatorPower As Watt Implements IBusAuxElectricSystemEngineeringData.MaxAlternatorPower
get
Return MaxAlternatorPower.SI(of Watt)
End Get
End Property
Public ReadOnly Property ES_ElectricStorageCapacity As WattSecond Implements IBusAuxElectricSystemEngineeringData.ElectricStorageCapacity
get
Return ElectricStorageCapacity.SI(Unit.SI.Watt.Hour).Cast(Of WattSecond)
End Get
End Property
Public ReadOnly Property ES_CurrentDemandEngineOffStandstill As Ampere Implements IBusAuxElectricSystemEngineeringData.CurrentDemandEngineOffStandstill
get
Return CurrentDemandEngineOffStandstill.SI(of Ampere)
End Get
End Property
Public ReadOnly Property ES_CurrentDemandEngineOffDriving As Ampere Implements IBusAuxElectricSystemEngineeringData.CurrentDemandEngineOffDriving
get
Return CurrentDemandEngineOffDriving.SI(of Ampere)
End Get
End Property
Public ReadOnly Property HVAC_ElectricalPowerDemand As Watt Implements IBusAuxHVACData.ElectricalPowerDemand
get
Return ElectricPowerDemand.SI(of Watt)
End Get
End Property
Public ReadOnly Property HVAC_MechanicalPowerDemand As Watt Implements IBusAuxHVACData.MechanicalPowerDemand
get
Return MechanicalPowerDemand.SI(of Watt)
End Get
End Property
Public ReadOnly Property HVAC_AverageHeatingDemand As Joule Implements IBusAuxHVACData.AverageHeatingDemand
get
Return AverageHeatingDemand.SI(unit.SI.Mega.Joule).Cast(of Joule)
End Get
End Property
Public ReadOnly Property HVAC_AuxHeaterPower As Watt Implements IBusAuxHVACData.AuxHeaterPower
get
Return AuxHeaterPower.SI(of Watt)
End Get
End Property
End Class
\ No newline at end of file
......@@ -642,7 +642,6 @@ Public Class DummyVehicle
End Property
Public Property ADAS As IAdvancedDriverAssistantSystemDeclarationInputData Implements IVehicleDeclarationInputData.ADAS
Public ReadOnly Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC
Public ReadOnly Property MaxDrivetrainPower As Watt Implements IVehicleEngineeringInputData.MaxDrivetrainPower
Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType
Public Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle
Public Property HybridElectricHDV As Boolean Implements IVehicleDeclarationInputData.HybridElectricHDV
......@@ -658,6 +657,8 @@ Public Class DummyVehicle
Public Property Loading As Kilogram Implements IVehicleEngineeringInputData.Loading
Public Property DynamicTyreRadius As Meter Implements IVehicleEngineeringInputData.DynamicTyreRadius
Public Property Height As Meter Implements IVehicleEngineeringInputData.Height
Public ReadOnly Property ElectricMotorTorqueLimits As TableData Implements IVehicleEngineeringInputData.ElectricMotorTorqueLimits
Public ReadOnly Property MaxPropulsionTorque As TableData Implements IVehicleEngineeringInputData.MaxPropulsionTorque
Public ReadOnly Property LowEntry As Boolean Implements IVehicleDeclarationInputData.LowEntry
Public ReadOnly Property Articulated As Boolean Implements IVehicleDeclarationInputData.Articulated
Public ReadOnly Property IVehicleDeclarationInputData_Height As Meter Implements IVehicleDeclarationInputData.Height
......
......@@ -827,7 +827,6 @@ Public Class MockEngineeringVehicle
Implements IVehicleDeclarationInputData.ADAS
Public ReadOnly Property InitialSOC As Double Implements IVehicleEngineeringInputData.InitialSOC
Public ReadOnly Property MaxDrivetrainPower As Watt Implements IVehicleEngineeringInputData.MaxDrivetrainPower
Public ReadOnly Property VehicleType As VectoSimulationJobType Implements IVehicleEngineeringInputData.VehicleType
Public Property ZeroEmissionVehicle As Boolean Implements IVehicleDeclarationInputData.ZeroEmissionVehicle
......@@ -847,6 +846,8 @@ Public Class MockEngineeringVehicle
Public Property Loading As Kilogram Implements IVehicleEngineeringInputData.Loading
Public Property DynamicTyreRadius As Meter Implements IVehicleEngineeringInputData.DynamicTyreRadius
Public Property Height As Meter Implements IVehicleEngineeringInputData.Height
Public ReadOnly Property ElectricMotorTorqueLimits As TableData Implements IVehicleEngineeringInputData.ElectricMotorTorqueLimits
Public ReadOnly Property MaxPropulsionTorque As TableData Implements IVehicleEngineeringInputData.MaxPropulsionTorque
Public ReadOnly Property Length As Meter Implements IVehicleDeclarationInputData.Length
Public ReadOnly Property Width As Meter Implements IVehicleDeclarationInputData.Width
Public ReadOnly Property EntranceHeight As Meter Implements IVehicleDeclarationInputData.EntranceHeight
......
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