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

Skip to content
Snippets Groups Projects
Commit 4bf3162d authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

removing files not part of the project

parent 982f1f7e
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1610 deletions
This diff is collapsed.
Imports System.IO
Namespace Electrics
''' <summary>
''' Alternator Efficiency Map -
''' </summary>
''' <remarks></remarks>
Public Class AlternatorMapX
Implements IAlternatorMap
''' <summary>
''' path to csv file containing map data
''' expects header row
''' Columns - [rpm - integer], [efficiency float, range 0-1], [max regen power float]
''' </summary>
''' <remarks></remarks>
Private ReadOnly filePath As String
Private map As Dictionary(Of AlternatorMapKey, AlternatorMapValues)
''' <summary>
''' Creates a new instance of AlternatorMap class
''' </summary>
''' <param name="filePath">full path to csv data</param>
''' <remarks></remarks>
Public Sub New(ByVal filePath As String)
Me.filePath = filePath
End Sub
''' <summary>
''' Initialise the map from supplied csv data
''' </summary>
''' <returns>Boolean - true if map is created successfully</returns>
''' <remarks></remarks>
Public Function Initialise() As Boolean Implements IAlternatorMap.Initialise
If File.Exists(filePath) Then
Using sr As StreamReader = New StreamReader(filePath)
'get array og lines fron csv
Dim lines() As String = sr.ReadToEnd().Split(CType(Environment.NewLine, Char()), StringSplitOptions.RemoveEmptyEntries)
'Must have at least 2 entries in map to make it usable [dont forget the header row]
If (lines.Count() < 3) Then
Throw New ArgumentException("Insufficient rows in csv to build a usable map")
End If
map = New Dictionary(Of AlternatorMapKey, AlternatorMapValues)()
Dim firstline As Boolean = True
For Each line As String In lines
If Not firstline Then
'split the line
Dim elements() As String = line.Split(New Char() {","}, StringSplitOptions.RemoveEmptyEntries)
'3 entries per line required
If (elements.Length <> 3) Then
Throw New ArgumentException("Incorrect number of values in csv file")
End If
'add values to map
'Create AlternatorKey
Dim aKey As AlternatorMapKey = New AlternatorMapKey(elements(0), elements(1))
Dim aValue As AlternatorMapValues = New AlternatorMapValues()
'Add Efficiency Value to Key.
map.Add(aKey, New AlternatorMapValues(elements(2)))
Else
firstline = False
End If
Next line
End Using
Return True
Else
Throw New ArgumentException("Supplied input file does not exist")
End If
End Function
''' <summary>
''' Returns the alternator efficiency at given rpm
''' </summary>
''' <param name="rpm">alternator rotation speed</param>
''' <returns>Single</returns>
''' <remarks></remarks>
Public Function GetEfficiency(ByVal rpm As single, ByVal amps As single) As AlternatorMapValues Implements IAlternatorMap.GetEfficiency
Dim key As New AlternatorMapKey(amps, rpm)
Return GetValueOrInterpolate(key)
End Function
''' <summary>
''' Returns a AlternatorMapValues instance containing the entries at a given key, or new interpolated values
''' </summary>
''' <returns>AlternatorMapValues</returns>
''' <remarks>Throws exception if Rpm or Amps are outside the map </remarks>
Private Function GetValueOrInterpolate(mapKey As AlternatorMapKey) As AlternatorMapValues
'check the rpm is within the map
Dim min As AlternatorMapKey = map.Keys.Min()
Dim max As AlternatorMapKey = map.Keys.Max()
'If mapKey.amps < min.amps Or mapKey.amps > max.amps Or mapKey.rpm < min.rpm Or mapKey.rpm > max.rpm Then
' Throw New ArgumentOutOfRangeException(String.Format("Extrapolation - Amp/Rpm Values should should be in the range {0} to {1}", min.ToString(), max.ToString()))
'End If
'LIMITING
If mapKey.amps < min.amps then mapKey.amps=min.amps
If mapKey.amps > max.amps then mapKey.amps = max.amps
If mapKey.rpm < min.rpm then mapKey.rpm = min.rpm
If mapKey.rpm > max.rpm then mapKey.rpm= max.rpm
'Check if the rpm is in the current memo
'If supplied present key, we can just return the values
If map.ContainsKey(mapKey) Then
Return map(mapKey)
End If
'Get Pre and Post Keys
Dim rpmPre As AlternatorMapValues
Dim rpmPost As AlternatorMapValues
Dim ampsPre As AlternatorMapValues
Dim ampsPost As AlternatorMapValues
'Pre and Post Data Points
Dim intRpmPre As Integer
Dim intRpmPost As Integer
Dim intAmpsPre As Integer
Dim intAmpsPost As Integer
intRpmPre = (From m In map Where m.Key.rpm <= mapKey.rpm Select m.Key.rpm).Last()
intRpmPost = (From m In map Where m.Key.rpm => mapKey.rpm Select m.Key.rpm).First()
intAmpsPre = (From m In map Where m.Key.amps <= mapKey.amps Select m.Key.amps).Last()
intAmpsPost = (From m In map Where m.Key.amps => mapKey.amps Select m.Key.amps).First()
Dim dAmps As Single
dim dAmpEfficiency as single
Dim ampsEfficiencySlope as single
Dim dRpm As Integer
Dim dRpmEfficiency as single
Dim rpmEfficiencySlope As Single
Dim interpolatedEfficiency As single
Dim ampPreEfficiency As Single
Dim ampPostEfficiency As Single
Dim rpmPreEfficiency As Single
Dim rpmPostEfficiency As Single
'*********** IF PRE AND POST RPM OR PRE AND POST AMPS are the same, the calculation is different. ***********
'SO
'Case RPM is the same
If intRpmPre = intRpmPost then
dAmps = intAmpsPost - intAmpsPre
ampPreEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPre)).Efficiency
ampPostEfficiency = map( New AlternatorMapKey( intAmpsPost, intRpmPre)).Efficiency
interpolatedEfficiency = ampPreEfficiency + ( ( ampPostEfficiency-ampPreEfficiency ) * (( mapKey.amps - intAmpsPre ) / ( intAmpsPost-intAmpsPre )))
Return New AlternatorMapValues(interpolatedEfficiency)
End If
If intAmpsPre = intAmpsPost then
rpmPreEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPre)).Efficiency
rpmPostEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPost)).Efficiency
interpolatedEfficiency = rpmPreEfficiency + ( ( rpmPostEfficiency-rpmPreEfficiency ) * (( mapKey.rpm - intRpmPre ) / ( intRpmPost-intRpmPre )))
Return New AlternatorMapValues(interpolatedEfficiency)
End If
rpmPre = map(New AlternatorMapKey(intAmpsPre, intRpmPre))
rpmPost = map(New AlternatorMapKey(intAmpsPre, intRpmPost))
ampsPre = map(New AlternatorMapKey(intAmpsPost, intRpmPre))
ampsPost = map(New AlternatorMapKey(intAmpsPost, intRpmPost))
'*************************************************************************
'The following biaxial linear interpolation formula was provided
'by Engineering. See example below.
'
' 1500 2000 4000
' 10 A-B <=Interpolated Horizontally
' (C-D)-(A-B) <=Interpolated Virtically
' 27 C-D <=Interpolated Horizontally
'
'************************************************************************
'
'*** A-B Efficiency ( Lower Using Lower Amps )
'get the delta values for rpm and the values
dRpm = intRpmPost - intRpmPre
dRpmEfficiency = rpmPost.Efficiency - rpmPre.Efficiency
'calculate the slopes
rpmEfficiencySlope = dRpmEfficiency / dRpm
'calculate the new values
'Dim AB_Efficiency As Single = If( drpm=0,rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + rpmPre.Efficiency)
Dim AB_Efficiency As Single = ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + rpmPre.Efficiency
'*** C-D Efficiency ( Using Higher Amps )
'get the delta values for rpm and the values
dRpm = intRpmPost - intRpmPre
dRpmEfficiency = ampsPost.Efficiency - ampsPre.Efficiency
'calculate the slopes
rpmEfficiencySlope = dRpmEfficiency / dRpm
'calculate the new values
'Dim CD_Efficiency As Single = If( dRpm=0, rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + ampsPre.Efficiency)
Dim CD_Efficiency As Single = ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + ampsPre.Efficiency
'(C-D) - (A-B) Efficiency
'Deltas
dAmps = intAmpsPost - intAmpsPre
dAmpEfficiency = CD_Efficiency - AB_Efficiency
'slopes
ampsEfficiencySlope = dAmpEfficiency / dAmps
'calculate final Values
' Dim ABCDEfficiency As Single = If( dAmps=0, CD_Efficiency, ((mapKey.amps - intAmpsPre) * ampsEfficiencySlope) + AB_Efficiency)
Dim ABCDEfficiency As Single = ((mapKey.amps - intAmpsPre) * ampsEfficiencySlope) + AB_Efficiency
Return New AlternatorMapValues(ABCDEfficiency)
End Function
Private Structure AlternatorMapKey
Implements IComparable
Public amps As Integer
Public rpm As Integer
Public Sub New(ByVal amps As Integer, ByVal rpm As Integer)
Me.amps = amps
Me.rpm = rpm
End Sub
Public Overrides Function ToString() As String
Return "Amps:" & amps & " / " & "Rpm:" & rpm
End Function
Public Function CompareTo(obj As Object) As Integer Implements IComparable.CompareTo
Dim compared As AlternatorMapKey = CType(obj, AlternatorMapKey)
Dim otherAlternatorMapKey As AlternatorMapKey = CType(obj, AlternatorMapKey)
'Same Place
If (Me.amps = otherAlternatorMapKey.amps AndAlso Me.rpm = otherAlternatorMapKey.rpm) Then
Return 0
End If
'smaller
If (Me.amps > otherAlternatorMapKey.amps) Or (Me.rpm > otherAlternatorMapKey.rpm) Then
Return 1
Else
Return -1
End If
End Function
End Structure
End Class
End Namespace
\ No newline at end of file
Namespace Electrics
Public Class CombinedAltEntry
Public Property Amps As Single
Public Property EngineSpeed As single
Public Property Efficiency As single
End Class
Public Structure CombinedAltKVP
Public Property Amps As Single
Public Property EngineSpeed As single
End structure
End Namespace
Imports System.Windows.Forms
Imports System.Drawing
Namespace Electrics
Public Class ImageCell
Inherits DataGridViewImageCell
'Public property tt As String = "ABC"
'Private del As Image = My.Resources.ResourceManager.GetObject("Info")
' Protected Overrides Sub Paint(graphics As Graphics, clipBounds As Rectangle, cellBounds As Rectangle, rowIndex As Integer, elementState As DataGridViewElementStates, value As Object, formattedValue As Object, errorText As String, cellStyle As DataGridViewCellStyle, advancedBorderStyle As DataGridViewAdvancedBorderStyle, paintParts As DataGridViewPaintParts)
' advancedBorderStyle.All = DataGridViewAdvancedCellBorderStyle.Single
' Me.ToolTipText=tt
' cellStyle.BackColor= Color.White
' MyBase.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts)
' graphics.DrawImage(del, cellBounds)
'End Sub
End Class
End Namespace
Imports System.Windows.Forms
Namespace Electrics
Public Class ImageColumn
Inherits DataGridViewImageColumn
Public Sub new()
' MyBase.New()
' Me.CellTemplate = New ImageCell()
End Sub
End Class
End Namespace

Namespace Electrics
Public class IncDecValuePair
Public Amps As Single
Public Efficiency As single
End class
End Namespace

Namespace Electrics
Public Class InterpAltUserInputs
Public shared Function Iterpolate( values As List(Of AltUserInput), x As single) As Single
Dim lowestX As single = values.Min( Function(m) m.Amps)
Dim highestX As Single = values.Max( Function(m) m.Amps)
Dim preKey, postKey ,preEff,postEff, xSlope, EffSlope As single
Dim deltaX , deltaEff As single
Dim slope As single
'Out of range, returns efficiency for lowest
If x< lowestX then Return values.First( Function(f) f.Amps= lowestX).Eff
'Out of range, efficiency for highest
If x> highestX then Return values.First( Function(f) f.Amps= highestX).Eff
'On Bounds check
If values.Where( Function(w) w.Amps=x).Count=1 then Return values.First( Function(w) w.Amps=x).Eff
'OK, we need to interpolate.
preKey = values.Last( Function(l) l.Amps < x).Amps
postKey = values.First( Function(l) l.Amps > x).Amps
preEff = values.First( Function(f) f.Amps=preKey).Eff
postEff = values.First( Function(f) f.Amps=postKey).Eff
deltaX = postKey-preKey
deltaEff = postEff-preEff
'slopes
effSlope = deltaEff/deltaX
Dim retVal As Single = ((x - preKey) * effSlope) + preEff
Return retVal
End Function
End Class
End Namespace
Namespace Hvac
Public MustInherit Class BusFloorBase
Public Property FloorType As String
Public property H as Double
Public Property V As Double
Public property C As Double
End Class
End Namespace

Namespace Hvac
Public Class BusFloorLow
Inherits BusFloorBase
Sub new ()
MyBase.FloorType= "low floor"
End Sub
Sub new ( H As Double, V As Double, C As Double )
Me.New()
MyBase.H=H
MyBase.V=V
MyBase.C=C
End Sub
End Class
End Namespace

Namespace Hvac
Public Class BusFloorRaised
inherits BusFloorBase
Sub new ()
MyBase.FloorType= "raised floor"
End Sub
Sub new ( H As Double, V As Double, C As Double )
Me.New()
MyBase.H=H
MyBase.V=V
MyBase.C=C
End Sub
End Class
End Namespace

Namespace Hvac
Public Class BusFloorSemiLow
Inherits BusFloorBase
Sub new ()
MyBase.FloorType= "semi low floor"
End Sub
Sub new ( H As Double, V As Double, C As Double )
Me.New()
MyBase.H=H
MyBase.V=V
MyBase.C=C
End Sub
End Class
End Namespace
Namespace Hvac
Public structure BusKey
public Model As String
public FloorType As String
public EngineType As String
End structure
End Namespace

Namespace Hvac
Public Class HVACInputs
Implements IHVACInputs
Public Property Region As Integer Implements IHVACInputs.Region
Public Property Season As Integer Implements IHVACInputs.Season
Public Sub New()
End Sub
Public Sub New(Region As Integer, Season As Integer)
Me.Region = Region
Me.Season = Season
End Sub
End Class
End Namespace
Imports System.IO
Imports AdvancedAuxiliaryInterfaces.Electrics
Imports System.Windows.Forms
Namespace Hvac
Public Class HVACMap
Implements IHVACMap
#Region "Header Comments"
'Some sort of multi-dimensional map implemented here
'No interpolation - too expensive/complex to implement?
'Set list of choices in each dimension of input
'options
'1. multi-dimension array
'2. dictionary with a Tuple Key?
'3. dictionary with struct as the key, struct would encapsulate the dimensions - this would map to the HVAC inputs
'Need to test different choices for speed/ease of use
'Initial Mock Implementation - 2 input parameters, 2 output values
'probably easiest to implement the inputs and outputs as structs and then create a dictionary<input,output> ?
'could define the list of inputs based on the supplied map
#End Region
'Constants for .vaux headers
Private Const REGIONheader As String = "Region"
Private Const SEASONheader As String = "Season"
Private Const MECHDheader As String = "MechD"
Private Const ELECDheader As String = "ElecD"
'Private Fields
Private _mapDimensions As Integer
Private _mapPath As String
Private _mechanicalDemandLookupKW As Single
Private _electricalDemandLookupKW As Single
Private _map As List(Of String())
'Public Property _mapHeaders As Dictionary(Of String, HVACMapParameter)
Private _mapHeaders As Dictionary(Of String, HVACMapParameter)
Public Property MapHeaders As Dictionary(Of String, HVACMapParameter) Implements IHVACMap.MapHeaders
Get
Return Me._mapHeaders
End Get
Private Set(ByVal Value As Dictionary(Of String, HVACMapParameter))
Me._mapHeaders = Value
End Set
End Property
'Constructor
''' <summary>
''' Constructor
''' </summary>
''' <param name="iMapPath"></param>
''' <remarks></remarks>
Public Sub New(iMapPath As String)
_mapPath = iMapPath
End Sub
'Initialisers and Map related Methods
Public Function Initialise() As Boolean Implements IHVACMap.Initialise
MapHeaders = New Dictionary(Of String, HVACMapParameter)()
_map = New List(Of String())
InitialiseMapHeaders()
Dim myData As String
Dim linesArray As String()
'Check map file can be found.
Try
myData = System.IO.File.ReadAllText(_mapPath, System.Text.Encoding.UTF8)
Catch ex As FileNotFoundException
Throw New ArgumentException("The map file was not found")
End Try
linesArray = (From s As String In myData.Split(vbLf) Select s.Trim).ToArray
'getValuesIntoMap
Dim lineNumber As Integer = 0
For Each line As String In linesArray
Dim values As String() = line.Split(","c)
'Test number of values
If values.Count <> _mapHeaders.Count Then
Throw New System.ArgumentException("Row contains inconsistant values")
End If
Dim intTest As Single
'Check lines all contain valid rows ( Assume Single )
For Each v As String In values
If lineNumber > 0 AndAlso Not Single.TryParse(v, intTest) Then
Throw New InvalidCastException("A non numeric value was found in the map file")
End If
Next
lineNumber += 1
_map.Add(values)
Next
_mapDimensions = _map(0).Length
'Validate Map
If validateMap() = False Then
Throw New Exception("Unable to complete Load of HVAC MAP")
End If
Return True
End Function
Private Function validateMap() As Boolean
'Lets make sure we have header and also data.
If _map.Count < 2 Then
MessageBox.Show("Map did not contain any data")
Return False
End If
'Make sure we have matching headers for our list of HVACMapParameterList
Dim i As Integer
For i = 0 To _mapDimensions - 1
If Not MapHeaders.ContainsKey(_map(0)(i)) Then
MessageBox.Show("Map header {0} was not found in the prefdefined and expected header list", _map(0)(i))
Return False
Else
'Set ordinal position of respective header.
MapHeaders(_map(0)(i)).OrdinalPosition = i
'Get Unique Values associated with Headers.
MapHeaders(_map(0)(i)).UniqueDataValues = GetUniqueValuesByOrdinal(i)
End If
Next
Return True
End Function
Private Sub InitialiseMapHeaders()
'Not all properties in the HVACMapParameter POCO are initialised here
'As some can only be populated dynamically such as OrdinalPosition.
'Region
Dim region As New HVACMapParameter With {.Key = REGIONheader,
.Description = "Region Code",
.Max = 0,
.Min = 0,
.Name = "Regional Code",
.Notes = "",
.SystemType = GetType(Integer),
.SearchControlType = GetType(System.Windows.Forms.ComboBox)}
MapHeaders.Add(REGIONheader, region)
'Season
Dim season As New HVACMapParameter With {.Key = SEASONheader,
.Description = "Season Code",
.Max = 0,
.Min = 0,
.Name = "Season Code",
.Notes = "",
.SystemType = GetType(Integer),
.SearchControlType = GetType(System.Windows.Forms.ComboBox)}
MapHeaders.Add(SEASONheader, season)
'*************************************************************************************************
' Author.
'
' Add more inputs here - Ensure that these match exactly with the headers in the .vaux file.
'
' This could be done dynamically with a loadable configuration file, but takes more time
'
'************************************************************************************************
'MechD
Dim mechD As New HVACMapParameter With {.Key = MECHDheader,
.Description = "MechD",
.Max = 0,
.Min = 0,
.Name = "MechD",
.Notes = "",
.SystemType = GetType(Integer),
.IsOutput = True}
MapHeaders.Add(MECHDheader, mechD)
'ElecD
Dim elecD As New HVACMapParameter With {.Key = ELECDheader,
.Description = "ElecD",
.Max = 0,
.Min = 0,
.Name = "ElecD",
.Notes = "",
.SystemType = GetType(Integer),
.IsOutput = True}
MapHeaders.Add(ELECDheader, elecD)
End Sub
'Public Map Enquiry Methods
Public Function GetMapHeaders() As Dictionary(Of String, HVACMapParameter) Implements IHVACMap.GetMapHeaders
Return MapHeaders
End Function
Public Function GetMapSubSet(search As String()) As List(Of String()) Implements IHVACMap.GetMapSubSet
'Sanity Check
If (search.Length <> _mapDimensions) Then
Throw New Exception("The search array does not match the number elements in the map")
End If
Dim reducer As New List(Of String())
Dim matched As Boolean
Dim i As Integer ' For each data row
For i = 1 To (_map.Count - 1)
matched = True
Dim o As Integer ' For each ordinal column
For o = 0 To search.Length - 1
'Dont try and match it if it is an output or nothing, what would be the point?
If search(o) = Nothing Or search(o) = "" Or GetMapHeaders.ToArray()(o).Value.IsOutput Then
Continue For ' Get next ordinal
Else
'Try and match
If search(o) <> _map(i)(o) Then
matched = False
End If
End If
Next o
If matched Then
reducer.Add(_map(i))
End If
Next i
Return reducer
End Function
Public Function GetUniqueValuesByOrdinal(o As Integer) As List(Of String) Implements IHVACMap.GetUniqueValuesByOrdinal
'Sanity Check
If (o < 0 Or o >= _mapDimensions) Then
Throw New Exception(Format("Get Unique Values by ordinal ordinal passed {0} is outside the bounds of the array.", o))
End If
Dim results As List(Of String) =
(From r In _map Select r(o) Distinct).ToList()
'Remove Headers
results.Remove(results(0))
Return results
End Function
Public Function GetMechanicalDemand(region As Integer, season As Integer) As Integer Implements IHVACMap.GetMechanicalDemand
Dim search As String() = {region.ToString(), season.ToString(), "", ""}
If (GetMapSubSet(search).Count <> 1) Then
Throw New ArgumentException("Not Exactly one result returned for these inputs.")
End If
'get mechanical demand
Dim resultStr As String = GetMapSubSet(search).First()(_mapHeaders(MECHDheader).OrdinalPosition)
Dim resultInt As Integer = Integer.Parse(resultStr)
Return resultInt
End Function
Public Function GetElectricalDemand(region As Integer, season As Integer) As Integer Implements IHVACMap.GetElectricalDemand
Dim search As String() = {region.ToString(), season.ToString(), "", ""}
If (GetMapSubSet(search).Count <> 1) Then
Throw New ArgumentException("Not Exactly one result returned for these inputs.")
End If
'get electrical demand
Dim resultStr As String = GetMapSubSet(search).First()(_mapHeaders(ELECDheader).OrdinalPosition)
Dim resultInt As Integer = Integer.Parse(resultStr)
Return resultInt
End Function
End Class
End Namespace
\ No newline at end of file
' Copyright 2015 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.
'POCO Class to hold information required to
'1. Reference Value
'2. Create UI Controls on Form.
Namespace Hvac
Public Class HVACMapParameter
Public Key As String
Public Name As String
Public Description As String
Public Notes As String
Public Min As Double
Public Max As Double
Public SystemType As System.Type
Public SearchControlType As System.Type
Public ValueType As System.Type
Public OrdinalPosition As Integer
Public UniqueDataValues As List(Of String)
Public IsOutput As Boolean = False
End Class
End Namespace
\ No newline at end of file

Namespace Hvac
Public Interface IHVACInputs
Property Region As Integer
Property Season As Integer
End Interface
End Namespace
Imports System.IO
Imports AdvancedAuxiliaryInterfaces.Electrics
Imports System.Windows.Forms
Namespace Hvac
Public Interface IHVACMap
Property MapHeaders As Dictionary(Of String, HVACMapParameter)
Function Initialise() As Boolean
'Map Enquiry Methods
Function GetMapHeaders() As Dictionary(Of String, HVACMapParameter)
Function GetMapSubSet(search As String()) As List(Of String())
Function GetUniqueValuesByOrdinal(o As Integer) As List(Of String)
Function GetMechanicalDemand(ByVal region As Integer, ByVal season As Integer) As Integer
Function GetElectricalDemand(ByVal region As Integer, ByVal season As Integer) As Integer
End Interface
End Namespace
Namespace Hvac
Public Class ITechSectionLine
End Class
End Namespace
Public Interface ISignals
Property PreExistingAuxPower As single
Property EngineMotoringPower As single
property EngineDrivelinePower as single
property SmartElectrics As Boolean
Property ClutchEngaged As Boolean
Property EngineSpeed as integer
Property SmartPneumatics As Boolean
Property TotalCycleTimeSeconds As Integer
property EngineDrivelineTorque as single
Property Idle As Boolean
Property InNeutral As Boolean
End Interface
Public Interface IVectoInputs
Property VehicleWeightKG As Single
Property Cycle As String
Property PowerNetVoltage As Single
Property CycleDurationMinutes As single
Property FuelMap As string
End Interface
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