From d580b98c8f9778bd6eed0ad3ae877c18be237217 Mon Sep 17 00:00:00 2001
From: "Burns, Terry" <Terry.Burns@ricardo.com>
Date: Fri, 19 Sep 2014 08:42:43 +0000
Subject: [PATCH] Added UI in VectoAuxillaries and placed forms in here. Added
 Launchpad form for launching UI elements during development.

git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1612
---
 VECTOAux/AUXUITEST/AUXUITEST.vbproj           |  19 +-
 VECTOAux/AUXUITEST/F_HVAC.vb                  | 120 ++++-------
 VECTOAux/AUXUITEST/LaunchPad.Designer.vb      |  49 +++++
 VECTOAux/AUXUITEST/LaunchPad.resx             | 120 +++++++++++
 VECTOAux/AUXUITEST/LaunchPad.vb               |  15 ++
 .../My Project/Application.Designer.vb        |   2 +-
 .../AUXUITEST/My Project/Application.myapp    |   2 +-
 VECTOAux/AUXUITEST/Program.vb                 |   3 +
 VECTOAux/Launch/App.config                    |   6 +
 VECTOAux/Launch/Launch.vbproj                 | 126 +++++++++++
 VECTOAux/Launch/Module1.vb                    |  13 ++
 .../Launch/My Project/Application.Designer.vb |  13 ++
 VECTOAux/Launch/My Project/Application.myapp  |  10 +
 VECTOAux/Launch/My Project/AssemblyInfo.vb    |  35 +++
 .../Launch/My Project/Resources.Designer.vb   |  63 ++++++
 VECTOAux/Launch/My Project/Resources.resx     | 117 ++++++++++
 .../Launch/My Project/Settings.Designer.vb    |  73 +++++++
 VECTOAux/Launch/My Project/Settings.settings  |   7 +
 .../VectoAuxiliaries/Electrics/HVACInputs.vb  |   8 +
 .../VectoAuxiliaries/Electrics/IHVACInputs.vb |   7 +
 .../Hvac/AverageHVACLoadDemand.vb             |  31 ++-
 .../VectoAuxiliaries/UI/F_HVAC.Designer.vb    | 201 ++++++++++++++++++
 VECTOAux/VectoAuxiliaries/UI/F_HVAC.resx      | 120 +++++++++++
 VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb        | 193 +++++++++++++++++
 .../VectoAuxiliaries/VectoAuxiliaries.vbproj  |  13 ++
 .../Mocks/HVACMapMock.vb                      |   8 +-
 .../UnitTests/AverageHVACLoadDemandTests.vb   |  10 +-
 27 files changed, 1288 insertions(+), 96 deletions(-)
 create mode 100644 VECTOAux/AUXUITEST/LaunchPad.Designer.vb
 create mode 100644 VECTOAux/AUXUITEST/LaunchPad.resx
 create mode 100644 VECTOAux/AUXUITEST/LaunchPad.vb
 create mode 100644 VECTOAux/AUXUITEST/Program.vb
 create mode 100644 VECTOAux/Launch/App.config
 create mode 100644 VECTOAux/Launch/Launch.vbproj
 create mode 100644 VECTOAux/Launch/Module1.vb
 create mode 100644 VECTOAux/Launch/My Project/Application.Designer.vb
 create mode 100644 VECTOAux/Launch/My Project/Application.myapp
 create mode 100644 VECTOAux/Launch/My Project/AssemblyInfo.vb
 create mode 100644 VECTOAux/Launch/My Project/Resources.Designer.vb
 create mode 100644 VECTOAux/Launch/My Project/Resources.resx
 create mode 100644 VECTOAux/Launch/My Project/Settings.Designer.vb
 create mode 100644 VECTOAux/Launch/My Project/Settings.settings
 create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/HVACInputs.vb
 create mode 100644 VECTOAux/VectoAuxiliaries/Electrics/IHVACInputs.vb
 create mode 100644 VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
 create mode 100644 VECTOAux/VectoAuxiliaries/UI/F_HVAC.resx
 create mode 100644 VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb

diff --git a/VECTOAux/AUXUITEST/AUXUITEST.vbproj b/VECTOAux/AUXUITEST/AUXUITEST.vbproj
index a38eb504ea..d2da91b196 100644
--- a/VECTOAux/AUXUITEST/AUXUITEST.vbproj
+++ b/VECTOAux/AUXUITEST/AUXUITEST.vbproj
@@ -75,10 +75,19 @@
     <Import Include="System.Threading.Tasks" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="F_HVAC.Designer.vb" />
     <Compile Include="F_HVAC.vb">
       <SubType>Form</SubType>
     </Compile>
+    <Compile Include="F_HVAC.Designer.vb">
+      <DependentUpon>F_HVAC.vb</DependentUpon>
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="LaunchPad.Designer.vb">
+      <DependentUpon>LaunchPad.vb</DependentUpon>
+    </Compile>
+    <Compile Include="LaunchPad.vb">
+      <SubType>Form</SubType>
+    </Compile>
     <Compile Include="My Project\AssemblyInfo.vb" />
     <Compile Include="My Project\Application.Designer.vb">
       <AutoGen>True</AutoGen>
@@ -94,9 +103,15 @@
       <DependentUpon>Settings.settings</DependentUpon>
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
     </Compile>
+    <Compile Include="Program.vb" />
   </ItemGroup>
   <ItemGroup>
-    <EmbeddedResource Include="F_HVAC.resx" />
+    <EmbeddedResource Include="F_HVAC.resx">
+      <DependentUpon>F_HVAC.vb</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="LaunchPad.resx">
+      <DependentUpon>LaunchPad.vb</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="My Project\Resources.resx">
       <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.vb</LastGenOutput>
diff --git a/VECTOAux/AUXUITEST/F_HVAC.vb b/VECTOAux/AUXUITEST/F_HVAC.vb
index ccd45d81c0..87a7e7a07b 100644
--- a/VECTOAux/AUXUITEST/F_HVAC.vb
+++ b/VECTOAux/AUXUITEST/F_HVAC.vb
@@ -1,18 +1,16 @@
-
-Imports VectoAuxiliaries.Hvac
+Imports VectoAuxiliaries.Hvac
 Imports System.Windows.Forms
 
 
-
 Public Class F_HVAC
 
-
-    'Private Variables.
+    'Private Fields
     Private _mapPath As String
     Private _cfgPath As String
     Private _map As HVACMap
     Private _mapFilter As List(Of String) = New List(Of String)()
 
+    'Properties
     Public Property MapPath As String
 
         Get
@@ -26,44 +24,7 @@ Public Class F_HVAC
 
     End Property
 
-
-
-
-
-    'Binding Base
-
-
-    'Constructor
-    Public Sub F_HVAC()
-
-
-    End Sub
-
-    Private Sub btnBrowseMap_Click(sender As Object, e As EventArgs) Handles btnBrowseMap.Click
-
-        Dim openFileDialog1 = New OpenFileDialog()
-
-        openFileDialog1.InitialDirectory = "."
-        openFileDialog1.Filter = "Map Files (*.vaux)|*.vaux"
-        openFileDialog1.FilterIndex = 1
-        openFileDialog1.RestoreDirectory = True
-
-        openFileDialog1.ShowDialog(Me)
-        MapPath = openFileDialog1.FileName
-
-        openFileDialog1.Dispose()
-
-        _map = New HVACMap(_mapPath)
-
-        _mapFilter.Clear()
-        For Each item In _map.GetMapHeaders
-            _mapFilter.Add("")
-        Next
-
-        BuildSearchBar()
-
-    End Sub
-
+    'Helpers
     Private Sub BuildSearchBar()
 
         'Clear out anything which may be resident
@@ -107,7 +68,6 @@ Public Class F_HVAC
 
 
     End Sub
-
     Private Sub FillControl(ByRef control As Control, values As List(Of String), param As HVACMapParameter)
 
         'ComboBox Filter Control
@@ -125,28 +85,6 @@ Public Class F_HVAC
         End If
 
     End Sub
-
-    Private Sub FilterComboHandler(sender As Object, e As EventArgs)
-
-        'TODO:We need to update the _mapFilter here 
-
-        'Determine where in the filer we need to be
-        Dim combo As ComboBox = CType(sender, ComboBox)
-        Dim oridnal As Integer = combo.Name.Split("_")(1)
-
-        If (combo.SelectedIndex > 0) Then
-            _mapFilter(oridnal) = combo.Items(combo.SelectedIndex).ToString()
-
-        Else
-            _mapFilter(oridnal) = String.Empty
-        End If
-
-        Dim results = _map.GetMapSubSet(_mapFilter.ToArray())
-
-        PopulateResultsTable(results)
-
-    End Sub
-
     Private Sub PopulateResultsTable(subsetResults As List(Of String()))
 
         Dim table As New DataTable
@@ -174,6 +112,30 @@ Public Class F_HVAC
     End Sub
 
 
+    'Event Handlers
+    '**************
+    'Programatically attached when filer is built
+    Private Sub FilterComboHandler(sender As Object, e As EventArgs)
+
+
+        'Determine where in the filer we need to be
+        Dim combo As ComboBox = CType(sender, ComboBox)
+        Dim oridnal As Integer = combo.Name.Split("_")(1)
+
+        If (combo.SelectedIndex > 0) Then
+            _mapFilter(oridnal) = combo.Items(combo.SelectedIndex).ToString()
+
+        Else
+            _mapFilter(oridnal) = String.Empty
+        End If
+
+        Dim results = _map.GetMapSubSet(_mapFilter.ToArray())
+
+        PopulateResultsTable(results)
+
+    End Sub
+
+    'Delcaratively attached
     Private Sub dgMapResults_SelectionChanged(sender As Object, e As EventArgs) Handles dgMapResults.SelectionChanged
 
         If (CType(sender, DataGridView).SelectedRows.Count = 1) Then
@@ -182,26 +144,36 @@ Public Class F_HVAC
         End If
 
     End Sub
-
-
-
     Private Sub F_HVAC_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
 
-
+    End Sub
+    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
 
 
     End Sub
+    Private Sub btnBrowseMap_Click(sender As Object, e As EventArgs) Handles btnBrowseMap.Click
 
+        Dim openFileDialog1 = New OpenFileDialog()
 
-    Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
+        openFileDialog1.InitialDirectory = "."
+        openFileDialog1.Filter = "Map Files (*.vaux)|*.vaux"
+        openFileDialog1.FilterIndex = 1
+        openFileDialog1.RestoreDirectory = True
+
+        openFileDialog1.ShowDialog(Me)
+        MapPath = openFileDialog1.FileName
 
-        Dim v1 As Integer = _map.GetMechanicalDemand(1, 1)
+        openFileDialog1.Dispose()
 
-        Dim v2 As Integer = _map.GetMechanicalDemand(1, 2)
+        _map = New HVACMap(_mapPath)
 
-        MessageBox.Show(v1.ToString() & "  -  " & v2.ToString())
+        _mapFilter.Clear()
+        For Each item In _map.GetMapHeaders
+            _mapFilter.Add("")
+        Next
 
+        BuildSearchBar()
 
     End Sub
 
diff --git a/VECTOAux/AUXUITEST/LaunchPad.Designer.vb b/VECTOAux/AUXUITEST/LaunchPad.Designer.vb
new file mode 100644
index 0000000000..472ef76f45
--- /dev/null
+++ b/VECTOAux/AUXUITEST/LaunchPad.Designer.vb
@@ -0,0 +1,49 @@
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class LaunchPad
+    Inherits System.Windows.Forms.Form
+
+    'Form overrides dispose to clean up the component list.
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+
+    'Required by the Windows Form Designer
+    Private components As System.ComponentModel.IContainer
+
+    'NOTE: The following procedure is required by the Windows Form Designer
+    'It can be modified using the Windows Form Designer.  
+    'Do not modify it using the code editor.
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.btnHVAC = New System.Windows.Forms.Button()
+        Me.SuspendLayout()
+        '
+        'btnHVAC
+        '
+        Me.btnHVAC.Location = New System.Drawing.Point(31, 26)
+        Me.btnHVAC.Name = "btnHVAC"
+        Me.btnHVAC.Size = New System.Drawing.Size(104, 46)
+        Me.btnHVAC.TabIndex = 0
+        Me.btnHVAC.Text = "HVAC"
+        Me.btnHVAC.UseVisualStyleBackColor = True
+        '
+        'LaunchPad
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(426, 335)
+        Me.Controls.Add(Me.btnHVAC)
+        Me.Name = "LaunchPad"
+        Me.Text = "LaunchPad"
+        Me.ResumeLayout(False)
+
+    End Sub
+    Friend WithEvents btnHVAC As System.Windows.Forms.Button
+End Class
diff --git a/VECTOAux/AUXUITEST/LaunchPad.resx b/VECTOAux/AUXUITEST/LaunchPad.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/VECTOAux/AUXUITEST/LaunchPad.resx
@@ -0,0 +1,120 @@
+<?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>
+</root>
\ No newline at end of file
diff --git a/VECTOAux/AUXUITEST/LaunchPad.vb b/VECTOAux/AUXUITEST/LaunchPad.vb
new file mode 100644
index 0000000000..dde92e05ed
--- /dev/null
+++ b/VECTOAux/AUXUITEST/LaunchPad.vb
@@ -0,0 +1,15 @@
+Public Class LaunchPad
+
+
+    Private Sub btnHVAC_Click(sender As Object, e As EventArgs) Handles btnHVAC.Click
+
+        Dim frm As New VectoAuxiliaries.UI.F_HVAC()
+
+        frm.Show()
+
+
+    End Sub
+
+
+
+End Class
\ No newline at end of file
diff --git a/VECTOAux/AUXUITEST/My Project/Application.Designer.vb b/VECTOAux/AUXUITEST/My Project/Application.Designer.vb
index 20f9fd600f..160ea7cc24 100644
--- a/VECTOAux/AUXUITEST/My Project/Application.Designer.vb	
+++ b/VECTOAux/AUXUITEST/My Project/Application.Designer.vb	
@@ -32,7 +32,7 @@ Namespace My
         
         <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
         Protected Overrides Sub OnCreateMainForm()
-            Me.MainForm = Global.AUXUITEST.F_HVAC
+            Me.MainForm = Global.AUXUITEST.LaunchPad
         End Sub
     End Class
 End Namespace
diff --git a/VECTOAux/AUXUITEST/My Project/Application.myapp b/VECTOAux/AUXUITEST/My Project/Application.myapp
index 9852abe906..b3a9d0bd88 100644
--- a/VECTOAux/AUXUITEST/My Project/Application.myapp	
+++ b/VECTOAux/AUXUITEST/My Project/Application.myapp	
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <MySubMain>true</MySubMain>
-  <MainForm>F_HVAC</MainForm>
+  <MainForm>LaunchPad</MainForm>
   <SingleInstance>false</SingleInstance>
   <ShutdownMode>0</ShutdownMode>
   <EnableVisualStyles>true</EnableVisualStyles>
diff --git a/VECTOAux/AUXUITEST/Program.vb b/VECTOAux/AUXUITEST/Program.vb
new file mode 100644
index 0000000000..cd4a8f30a4
--- /dev/null
+++ b/VECTOAux/AUXUITEST/Program.vb
@@ -0,0 +1,3 @@
+Public Class Program
+
+End Class
diff --git a/VECTOAux/Launch/App.config b/VECTOAux/Launch/App.config
new file mode 100644
index 0000000000..74ade9db53
--- /dev/null
+++ b/VECTOAux/Launch/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
+    </startup>
+</configuration>
diff --git a/VECTOAux/Launch/Launch.vbproj b/VECTOAux/Launch/Launch.vbproj
new file mode 100644
index 0000000000..1d731be720
--- /dev/null
+++ b/VECTOAux/Launch/Launch.vbproj
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{4102F6FB-BD2A-47D9-8E11-FEBDDED01260}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <StartupObject>Launch.Module1</StartupObject>
+    <RootNamespace>Launch</RootNamespace>
+    <AssemblyName>Launch</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <MyType>Console</MyType>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <SccProjectName>SAK</SccProjectName>
+    <SccLocalPath>SAK</SccLocalPath>
+    <SccAuxPath>SAK</SccAuxPath>
+    <SccProvider>SAK</SccProvider>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <DefineDebug>true</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DocumentationFile>Launch.xml</DocumentationFile>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <DefineDebug>false</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DocumentationFile>Launch.xml</DocumentationFile>
+    <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionExplicit>On</OptionExplicit>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionCompare>Binary</OptionCompare>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionStrict>Off</OptionStrict>
+  </PropertyGroup>
+  <PropertyGroup>
+    <OptionInfer>On</OptionInfer>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+  </ItemGroup>
+  <ItemGroup>
+    <Import Include="Microsoft.VisualBasic" />
+    <Import Include="System" />
+    <Import Include="System.Collections" />
+    <Import Include="System.Collections.Generic" />
+    <Import Include="System.Data" />
+    <Import Include="System.Diagnostics" />
+    <Import Include="System.Linq" />
+    <Import Include="System.Xml.Linq" />
+    <Import Include="System.Threading.Tasks" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Module1.vb" />
+    <Compile Include="My Project\AssemblyInfo.vb" />
+    <Compile Include="My Project\Application.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Application.myapp</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Resources.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Settings.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="My Project\Resources.resx">
+      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="My Project\Application.myapp">
+      <Generator>MyApplicationCodeGenerator</Generator>
+      <LastGenOutput>Application.Designer.vb</LastGenOutput>
+    </None>
+    <None Include="My Project\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <CustomToolNamespace>My</CustomToolNamespace>
+      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
+    </None>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\VectoAuxiliaries\VectoAuxiliaries.vbproj">
+      <Project>{fdeee460-0b8a-4ef6-8d9e-72f203a50f65}</Project>
+      <Name>VectoAuxiliaries</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/VECTOAux/Launch/Module1.vb b/VECTOAux/Launch/Module1.vb
new file mode 100644
index 0000000000..b94e365e64
--- /dev/null
+++ b/VECTOAux/Launch/Module1.vb
@@ -0,0 +1,13 @@
+Module Module1
+
+    Sub Main()
+
+        Dim frm As New VectoAuxiliaries.UI.F_HVAC()
+
+        frm.Show()
+
+        Console.ReadLine()
+
+    End Sub
+
+End Module
diff --git a/VECTOAux/Launch/My Project/Application.Designer.vb b/VECTOAux/Launch/My Project/Application.Designer.vb
new file mode 100644
index 0000000000..0aecefe664
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Application.Designer.vb	
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     This code was generated by a tool.
+'     Runtime Version:4.0.30319.18444
+'
+'     Changes to this file may cause incorrect behavior and will be lost if
+'     the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/VECTOAux/Launch/My Project/Application.myapp b/VECTOAux/Launch/My Project/Application.myapp
new file mode 100644
index 0000000000..e62f1a5338
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Application.myapp	
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <MySubMain>false</MySubMain>
+  <SingleInstance>false</SingleInstance>
+  <ShutdownMode>0</ShutdownMode>
+  <EnableVisualStyles>true</EnableVisualStyles>
+  <AuthenticationMode>0</AuthenticationMode>
+  <ApplicationType>2</ApplicationType>
+  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
+</MyApplicationData>
diff --git a/VECTOAux/Launch/My Project/AssemblyInfo.vb b/VECTOAux/Launch/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000000..e4402348f0
--- /dev/null
+++ b/VECTOAux/Launch/My Project/AssemblyInfo.vb	
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' General Information about an assembly is controlled through the following 
+' set of attributes. Change these attribute values to modify the information
+' associated with an assembly.
+
+' Review the values of the assembly attributes
+
+<Assembly: AssemblyTitle("Launch")> 
+<Assembly: AssemblyDescription("")> 
+<Assembly: AssemblyCompany("AEA Group")> 
+<Assembly: AssemblyProduct("Launch")> 
+<Assembly: AssemblyCopyright("Copyright © AEA Group 2014")> 
+<Assembly: AssemblyTrademark("")> 
+
+<Assembly: ComVisible(False)>
+
+'The following GUID is for the ID of the typelib if this project is exposed to COM
+<Assembly: Guid("a5663c86-ea5f-4e94-8770-c654e1977b9d")> 
+
+' Version information for an assembly consists of the following four values:
+'
+'      Major Version
+'      Minor Version 
+'      Build Number
+'      Revision
+'
+' You can specify all the values or you can default the Build and Revision Numbers 
+' by using the '*' as shown below:
+' <Assembly: AssemblyVersion("1.0.*")> 
+
+<Assembly: AssemblyVersion("1.0.0.0")> 
+<Assembly: AssemblyFileVersion("1.0.0.0")> 
diff --git a/VECTOAux/Launch/My Project/Resources.Designer.vb b/VECTOAux/Launch/My Project/Resources.Designer.vb
new file mode 100644
index 0000000000..e83b2d4485
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Resources.Designer.vb	
@@ -0,0 +1,63 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     This code was generated by a tool.
+'     Runtime Version:4.0.30319.18444
+'
+'     Changes to this file may cause incorrect behavior and will be lost if
+'     the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+    
+    'This class was auto-generated by the StronglyTypedResourceBuilder
+    'class via a tool like ResGen or Visual Studio.
+    'To add or remove a member, edit your .ResX file then rerun ResGen
+    'with the /str option, or rebuild your VS project.
+    '''<summary>
+    '''  A strongly-typed resource class, for looking up localized strings, etc.
+    '''</summary>
+    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _
+    Friend Module Resources
+        
+        Private resourceMan As Global.System.Resources.ResourceManager
+        
+        Private resourceCulture As Global.System.Globalization.CultureInfo
+        
+        '''<summary>
+        '''  Returns the cached ResourceManager instance used by this class.
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+            Get
+                If Object.ReferenceEquals(resourceMan, Nothing) Then
+                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Launch.Resources", GetType(Resources).Assembly)
+                    resourceMan = temp
+                End If
+                Return resourceMan
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Overrides the current thread's CurrentUICulture property for all
+        '''  resource lookups using this strongly typed resource class.
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend Property Culture() As Global.System.Globalization.CultureInfo
+            Get
+                Return resourceCulture
+            End Get
+            Set
+                resourceCulture = value
+            End Set
+        End Property
+    End Module
+End Namespace
diff --git a/VECTOAux/Launch/My Project/Resources.resx b/VECTOAux/Launch/My Project/Resources.resx
new file mode 100644
index 0000000000..af7dbebbac
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Resources.resx	
@@ -0,0 +1,117 @@
+<?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.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: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" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </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" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/VECTOAux/Launch/My Project/Settings.Designer.vb b/VECTOAux/Launch/My Project/Settings.Designer.vb
new file mode 100644
index 0000000000..c80f8af839
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Settings.Designer.vb	
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     This code was generated by a tool.
+'     Runtime Version:4.0.30319.18444
+'
+'     Changes to this file may cause incorrect behavior and will be lost if
+'     the code is regenerated.
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+    
+    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"),  _
+     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+    Partial Friend NotInheritable Class MySettings
+        Inherits Global.System.Configuration.ApplicationSettingsBase
+        
+        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+        
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+    Private Shared addedHandler As Boolean
+
+    Private Shared addedHandlerLockObject As New Object
+
+    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+    Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+        If My.Application.SaveMySettingsOnExit Then
+            My.Settings.Save()
+        End If
+    End Sub
+#End If
+#End Region
+        
+        Public Shared ReadOnly Property [Default]() As MySettings
+            Get
+                
+#If _MyType = "WindowsForms" Then
+               If Not addedHandler Then
+                    SyncLock addedHandlerLockObject
+                        If Not addedHandler Then
+                            AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+                            addedHandler = True
+                        End If
+                    End SyncLock
+                End If
+#End If
+                Return defaultInstance
+            End Get
+        End Property
+    End Class
+End Namespace
+
+Namespace My
+    
+    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _
+    Friend Module MySettingsProperty
+        
+        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _
+        Friend ReadOnly Property Settings() As Global.Launch.My.MySettings
+            Get
+                Return Global.Launch.My.MySettings.Default
+            End Get
+        End Property
+    End Module
+End Namespace
diff --git a/VECTOAux/Launch/My Project/Settings.settings b/VECTOAux/Launch/My Project/Settings.settings
new file mode 100644
index 0000000000..85b890b3c6
--- /dev/null
+++ b/VECTOAux/Launch/My Project/Settings.settings	
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/HVACInputs.vb b/VECTOAux/VectoAuxiliaries/Electrics/HVACInputs.vb
new file mode 100644
index 0000000000..3f42b1d652
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/Electrics/HVACInputs.vb
@@ -0,0 +1,8 @@
+Public Class HVACInputs
+    Implements IHVACInputs
+
+    Public Property Region As Integer Implements IHVACInputs.Region
+
+    Public Property Season As Integer Implements IHVACInputs.Season
+
+End Class
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IHVACInputs.vb b/VECTOAux/VectoAuxiliaries/Electrics/IHVACInputs.vb
new file mode 100644
index 0000000000..6cd0794004
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/Electrics/IHVACInputs.vb
@@ -0,0 +1,7 @@
+Public Interface IHVACInputs
+
+    Property Region As Integer
+
+    Property Season As Integer
+
+End Interface
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/Hvac/AverageHVACLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Hvac/AverageHVACLoadDemand.vb
index 3345e20b90..c9ba870751 100644
--- a/VECTOAux/VectoAuxiliaries/Hvac/AverageHVACLoadDemand.vb
+++ b/VECTOAux/VectoAuxiliaries/Hvac/AverageHVACLoadDemand.vb
@@ -2,28 +2,45 @@
 
 Namespace Hvac
     Public Class AverageHVACLoadDemand
+
         Dim map As IHVACMap
         Dim alternator As IAlternator
 
-        Public Sub New(ByVal map As IHVACMap, ByVal alternator As IAlternator)
+        Public Property Region As Integer
+        Public Property Season As Integer
+
+
+
+        Public Sub New(ByVal map As IHVACMap, ByVal alternator As IAlternator, inputs As IHVACInputs)
             Me.map = map
             Me.alternator = alternator
+
+            Me.Region = inputs.Region
+            Me.Season = inputs.Season
+
         End Sub
 
         Public Function Initialise() As Boolean
             Return alternator.Initialise() AndAlso map.Initialise()
         End Function
 
-        Public Function AverageMechanicalPowerAtCrank() As Single
-            Throw New NotImplementedException
+        Public Function AverageMechanicalPowerDemandAtCrank(engineRPM As Integer) As Single
+
+            Return alternator.PulleyGearEfficiency
+
         End Function
 
-        Function AverageElectricalPowerAtAlternator() As Single
-            Throw New NotImplementedException
+        Function AverageElectricalPowerDemandAtAlternator() As Single
+
+
         End Function
 
-        Function AverageElectricalPowerAtCrank() As Single
-            Throw New NotImplementedException
+        Function AverageElectricalPowerDemandAtCrank() As Single
+
+
         End Function
+
+
+
     End Class
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
new file mode 100644
index 0000000000..6afa48d036
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.Designer.vb
@@ -0,0 +1,201 @@
+Namespace UI
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+    Partial Class F_HVAC
+        Inherits System.Windows.Forms.Form
+
+        'Form overrides dispose to clean up the component list.
+        <System.Diagnostics.DebuggerNonUserCode()> _
+        Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+            Try
+                If disposing AndAlso components IsNot Nothing Then
+                    components.Dispose()
+                End If
+            Finally
+                MyBase.Dispose(disposing)
+            End Try
+        End Sub
+
+        'Required by the Windows Form Designer
+        Private components As System.ComponentModel.IContainer
+
+        'NOTE: The following procedure is required by the Windows Form Designer
+        'It can be modified using the Windows Form Designer.  
+        'Do not modify it using the code editor.
+        <System.Diagnostics.DebuggerStepThrough()> _
+        Private Sub InitializeComponent()
+            Me.dgMapResults = New System.Windows.Forms.DataGridView()
+            Me.btnSave = New System.Windows.Forms.Button()
+            Me.btnCancel = New System.Windows.Forms.Button()
+            Me.btnBrowseMap = New System.Windows.Forms.Button()
+            Me.txtMapFile = New System.Windows.Forms.TextBox()
+            Me.lblMapFile = New System.Windows.Forms.Label()
+            Me.pnlSearchBar = New System.Windows.Forms.Panel()
+            Me.txtPullyEfficiency = New System.Windows.Forms.TextBox()
+            Me.lblPullyEfficiency = New System.Windows.Forms.Label()
+            Me.lblMechanicalDemand = New System.Windows.Forms.Label()
+            Me.txtMechanicalDemand = New System.Windows.Forms.TextBox()
+            Me.lblElectricalDemand = New System.Windows.Forms.Label()
+            Me.txtElectricalDemand = New System.Windows.Forms.TextBox()
+            CType(Me.dgMapResults, System.ComponentModel.ISupportInitialize).BeginInit()
+            Me.SuspendLayout()
+            '
+            'dgMapResults
+            '
+            Me.dgMapResults.AllowUserToAddRows = False
+            Me.dgMapResults.AllowUserToDeleteRows = False
+            Me.dgMapResults.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
+            Me.dgMapResults.Location = New System.Drawing.Point(14, 183)
+            Me.dgMapResults.MultiSelect = False
+            Me.dgMapResults.Name = "dgMapResults"
+            Me.dgMapResults.ReadOnly = True
+            Me.dgMapResults.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
+            Me.dgMapResults.Size = New System.Drawing.Size(650, 218)
+            Me.dgMapResults.TabIndex = 0
+            '
+            'btnSave
+            '
+            Me.btnSave.Location = New System.Drawing.Point(497, 425)
+            Me.btnSave.Name = "btnSave"
+            Me.btnSave.Size = New System.Drawing.Size(75, 23)
+            Me.btnSave.TabIndex = 1
+            Me.btnSave.Text = "Save"
+            Me.btnSave.UseVisualStyleBackColor = True
+            '
+            'btnCancel
+            '
+            Me.btnCancel.Location = New System.Drawing.Point(584, 425)
+            Me.btnCancel.Name = "btnCancel"
+            Me.btnCancel.Size = New System.Drawing.Size(75, 23)
+            Me.btnCancel.TabIndex = 2
+            Me.btnCancel.Text = "Cancel"
+            Me.btnCancel.UseVisualStyleBackColor = True
+            '
+            'btnBrowseMap
+            '
+            Me.btnBrowseMap.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.btnBrowseMap.Location = New System.Drawing.Point(584, 12)
+            Me.btnBrowseMap.Name = "btnBrowseMap"
+            Me.btnBrowseMap.Size = New System.Drawing.Size(75, 23)
+            Me.btnBrowseMap.TabIndex = 3
+            Me.btnBrowseMap.Text = "Browse"
+            Me.btnBrowseMap.UseVisualStyleBackColor = True
+            '
+            'txtMapFile
+            '
+            Me.txtMapFile.Location = New System.Drawing.Point(48, 12)
+            Me.txtMapFile.Name = "txtMapFile"
+            Me.txtMapFile.ReadOnly = True
+            Me.txtMapFile.Size = New System.Drawing.Size(530, 20)
+            Me.txtMapFile.TabIndex = 4
+            '
+            'lblMapFile
+            '
+            Me.lblMapFile.AutoSize = True
+            Me.lblMapFile.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+            Me.lblMapFile.Location = New System.Drawing.Point(9, 15)
+            Me.lblMapFile.Name = "lblMapFile"
+            Me.lblMapFile.Size = New System.Drawing.Size(34, 13)
+            Me.lblMapFile.TabIndex = 5
+            Me.lblMapFile.Text = "Map :"
+            '
+            'pnlSearchBar
+            '
+            Me.pnlSearchBar.Location = New System.Drawing.Point(16, 114)
+            Me.pnlSearchBar.Name = "pnlSearchBar"
+            Me.pnlSearchBar.Size = New System.Drawing.Size(643, 59)
+            Me.pnlSearchBar.TabIndex = 6
+            '
+            'txtPullyEfficiency
+            '
+            Me.txtPullyEfficiency.Location = New System.Drawing.Point(107, 60)
+            Me.txtPullyEfficiency.Name = "txtPullyEfficiency"
+            Me.txtPullyEfficiency.Size = New System.Drawing.Size(46, 20)
+            Me.txtPullyEfficiency.TabIndex = 7
+            '
+            'lblPullyEfficiency
+            '
+            Me.lblPullyEfficiency.AutoSize = True
+            Me.lblPullyEfficiency.Location = New System.Drawing.Point(20, 63)
+            Me.lblPullyEfficiency.Name = "lblPullyEfficiency"
+            Me.lblPullyEfficiency.Size = New System.Drawing.Size(81, 13)
+            Me.lblPullyEfficiency.TabIndex = 8
+            Me.lblPullyEfficiency.Text = " Pully Efficiency"
+            '
+            'lblMechanicalDemand
+            '
+            Me.lblMechanicalDemand.AutoSize = True
+            Me.lblMechanicalDemand.Location = New System.Drawing.Point(175, 63)
+            Me.lblMechanicalDemand.Name = "lblMechanicalDemand"
+            Me.lblMechanicalDemand.Size = New System.Drawing.Size(132, 13)
+            Me.lblMechanicalDemand.TabIndex = 9
+            Me.lblMechanicalDemand.Text = "Mechanical Demand (KW)"
+            '
+            'txtMechanicalDemand
+            '
+            Me.txtMechanicalDemand.Location = New System.Drawing.Point(315, 59)
+            Me.txtMechanicalDemand.Name = "txtMechanicalDemand"
+            Me.txtMechanicalDemand.ReadOnly = True
+            Me.txtMechanicalDemand.Size = New System.Drawing.Size(56, 20)
+            Me.txtMechanicalDemand.TabIndex = 10
+            Me.txtMechanicalDemand.Text = "0"
+            '
+            'lblElectricalDemand
+            '
+            Me.lblElectricalDemand.AutoSize = True
+            Me.lblElectricalDemand.Location = New System.Drawing.Point(390, 62)
+            Me.lblElectricalDemand.Name = "lblElectricalDemand"
+            Me.lblElectricalDemand.Size = New System.Drawing.Size(120, 13)
+            Me.lblElectricalDemand.TabIndex = 11
+            Me.lblElectricalDemand.Text = "Electrical Demand (KW)"
+            '
+            'txtElectricalDemand
+            '
+            Me.txtElectricalDemand.Location = New System.Drawing.Point(516, 59)
+            Me.txtElectricalDemand.Name = "txtElectricalDemand"
+            Me.txtElectricalDemand.ReadOnly = True
+            Me.txtElectricalDemand.Size = New System.Drawing.Size(26, 20)
+            Me.txtElectricalDemand.TabIndex = 12
+            Me.txtElectricalDemand.Text = "0"
+            '
+            'F_HVAC
+            '
+            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+            Me.ClientSize = New System.Drawing.Size(674, 460)
+            Me.Controls.Add(Me.txtElectricalDemand)
+            Me.Controls.Add(Me.lblElectricalDemand)
+            Me.Controls.Add(Me.txtMechanicalDemand)
+            Me.Controls.Add(Me.lblMechanicalDemand)
+            Me.Controls.Add(Me.lblPullyEfficiency)
+            Me.Controls.Add(Me.txtPullyEfficiency)
+            Me.Controls.Add(Me.pnlSearchBar)
+            Me.Controls.Add(Me.lblMapFile)
+            Me.Controls.Add(Me.txtMapFile)
+            Me.Controls.Add(Me.btnBrowseMap)
+            Me.Controls.Add(Me.btnCancel)
+            Me.Controls.Add(Me.btnSave)
+            Me.Controls.Add(Me.dgMapResults)
+            Me.Name = "F_HVAC"
+            Me.Text = "HVAC Properties"
+            CType(Me.dgMapResults, System.ComponentModel.ISupportInitialize).EndInit()
+            Me.ResumeLayout(False)
+            Me.PerformLayout()
+
+        End Sub
+        Friend WithEvents dgMapResults As System.Windows.Forms.DataGridView
+        Friend WithEvents btnSave As System.Windows.Forms.Button
+        Friend WithEvents btnCancel As System.Windows.Forms.Button
+        Friend WithEvents btnBrowseMap As System.Windows.Forms.Button
+        Friend WithEvents txtMapFile As System.Windows.Forms.TextBox
+        Friend WithEvents lblMapFile As System.Windows.Forms.Label
+        Friend WithEvents pnlSearchBar As System.Windows.Forms.Panel
+        Friend WithEvents txtPullyEfficiency As System.Windows.Forms.TextBox
+        Friend WithEvents lblPullyEfficiency As System.Windows.Forms.Label
+        Friend WithEvents lblMechanicalDemand As System.Windows.Forms.Label
+        Friend WithEvents txtMechanicalDemand As System.Windows.Forms.TextBox
+        Friend WithEvents lblElectricalDemand As System.Windows.Forms.Label
+        Friend WithEvents txtElectricalDemand As System.Windows.Forms.TextBox
+
+    End Class
+
+End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.resx b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.resx
new file mode 100644
index 0000000000..1af7de150c
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.resx
@@ -0,0 +1,120 @@
+<?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>
+</root>
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb
new file mode 100644
index 0000000000..424be599d8
--- /dev/null
+++ b/VECTOAux/VectoAuxiliaries/UI/F_HVAC.vb
@@ -0,0 +1,193 @@
+Imports VectoAuxiliaries.Hvac
+Imports System.Windows.Forms
+
+Namespace UI
+
+
+    Public Class F_HVAC
+
+        'Private Fields
+        Private _mapPath As String
+        Private _cfgPath As String
+        Private _map As HVACMap
+        Private _mapFilter As List(Of String) = New List(Of String)()
+
+        'Properties
+        Public Property MapPath As String
+
+            Get
+                Return _mapPath
+            End Get
+            Set(value As String)
+                _mapPath = value
+                txtMapFile.Text = value
+            End Set
+
+
+        End Property
+
+        'Helpers
+        Private Sub BuildSearchBar()
+
+            'Clear out anything which may be resident
+            pnlSearchBar.Controls.Clear()
+
+            If _map Is Nothing Then
+                MessageBox.Show("Map not yet loaded")
+                Return
+            End If
+
+            'Ok Showtime
+
+
+            'Get all the columns who's header is an input
+            Dim results As Dictionary(Of String, HVACMapParameter) = (From p In _map.GetMapHeaders() Where Not p.Value.IsOutput Select p).ToDictionary(Function(p) p.Key, Function(p) p.Value)
+
+            'Add Layuout Table inside the pnlSearchBar
+            Dim filterPanelTable As TableLayoutPanel = New TableLayoutPanel()
+            filterPanelTable.RowCount = 2
+            filterPanelTable.ColumnCount = _map.GetMapHeaders().Count
+            filterPanelTable.Dock = DockStyle.Fill
+
+            pnlSearchBar.Controls.Add(filterPanelTable)
+
+            For Each parameter As HVACMapParameter In results.Values
+
+                'TB : 'Dies ist, wo die Magie passiert 
+                Dim sp1 As Control = Convert.ChangeType(Activator.CreateInstance(parameter.SearchControlType), parameter.SearchControlType)
+
+                sp1.Name = "FilterControl_" + parameter.OrdinalPosition.ToString()
+
+                FillControl(sp1, parameter.UniqueDataValues, parameter)
+
+                'Set Label
+                filterPanelTable.Controls.Add((New Label() With {.Text = parameter.Name}), parameter.OrdinalPosition, 0)
+
+                'Set Control
+                filterPanelTable.Controls.Add(sp1, parameter.OrdinalPosition, 1)
+
+            Next
+
+
+        End Sub
+        Private Sub FillControl(ByRef control As Control, values As List(Of String), param As HVACMapParameter)
+
+            'ComboBox Filter Control
+            If TypeOf control Is ComboBox Then
+
+                Dim cb As ComboBox = CType(control, ComboBox)
+                AddHandler cb.SelectionChangeCommitted, AddressOf Me.FilterComboHandler
+                cb.Items.Add("<Select>")
+                For Each item As String In values
+                    cb.Items.Add(item)
+                Next
+
+                cb.SelectedIndex = 0
+
+            End If
+
+        End Sub
+        Private Sub PopulateResultsTable(subsetResults As List(Of String()))
+
+            Dim table As New DataTable
+            For Each item As KeyValuePair(Of String, HVACMapParameter) In _map.GetMapHeaders
+                Dim col As New DataColumn(item.Value.Name)
+                table.Columns.Add(col)
+            Next
+
+            For Each row As String() In subsetResults
+                Dim cell As Integer
+                Dim newTableRow As DataRow = table.NewRow
+                For cell = 0 To table.Columns.Count - 1
+                    newTableRow.SetField(cell, row(cell))
+                Next
+                table.Rows.Add(newTableRow)
+            Next
+
+            dgMapResults.DataSource = table
+
+            dgMapResults.ClearSelection()
+            txtElectricalDemand.Text = String.Empty
+            txtMechanicalDemand.Text = String.Empty
+
+
+        End Sub
+
+
+        'Event Handlers
+        '**************
+        'Programatically attached when filer is built
+        Private Sub FilterComboHandler(sender As Object, e As EventArgs)
+
+
+            'Determine where in the filer we need to be
+            Dim combo As ComboBox = CType(sender, ComboBox)
+            Dim oridnal As Integer = combo.Name.Split("_")(1)
+
+            If (combo.SelectedIndex > 0) Then
+                _mapFilter(oridnal) = combo.Items(combo.SelectedIndex).ToString()
+
+            Else
+                _mapFilter(oridnal) = String.Empty
+            End If
+
+            Dim results = _map.GetMapSubSet(_mapFilter.ToArray())
+
+            PopulateResultsTable(results)
+
+        End Sub
+
+        'Delcaratively attached
+        Private Sub dgMapResults_SelectionChanged(sender As Object, e As EventArgs) Handles dgMapResults.SelectionChanged
+
+            If (CType(sender, DataGridView).SelectedRows.Count = 1) Then
+                txtMechanicalDemand.Text = CType(sender, DataGridView).SelectedRows(0).Cells("MechD").Value
+                txtElectricalDemand.Text = CType(sender, DataGridView).SelectedRows(0).Cells("ElecD").Value
+            End If
+
+        End Sub
+        Private Sub F_HVAC_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+
+
+        End Sub
+        Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
+
+
+        End Sub
+        Private Sub btnBrowseMap_Click(sender As Object, e As EventArgs) Handles btnBrowseMap.Click
+
+            Dim openFileDialog1 = New OpenFileDialog()
+
+            openFileDialog1.InitialDirectory = "."
+            openFileDialog1.Filter = "Map Files (*.vaux)|*.vaux"
+            openFileDialog1.FilterIndex = 1
+            openFileDialog1.RestoreDirectory = True
+
+            openFileDialog1.ShowDialog(Me)
+            MapPath = openFileDialog1.FileName
+
+            openFileDialog1.Dispose()
+
+            _map = New HVACMap(_mapPath)
+
+            _mapFilter.Clear()
+            For Each item As KeyValuePair(Of String, HVACMapParameter) In _map.GetMapHeaders
+                _mapFilter.Add("")
+            Next
+
+            BuildSearchBar()
+
+        End Sub
+
+
+    End Class
+
+
+
+
+
+
+
+
+
+End Namespace
diff --git a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
index 5bdc223e11..36dd220114 100644
--- a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
+++ b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj
@@ -50,6 +50,7 @@
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml" />
     <Reference Include="System.Core" />
@@ -68,6 +69,8 @@
     <Import Include="System.Threading.Tasks" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="Electrics\HVACInputs.vb" />
+    <Compile Include="Electrics\IHVACInputs.vb" />
     <Compile Include="Hvac\HVACMapParameter.vb" />
     <Compile Include="Hvac\IHVACMap.vb" />
     <Compile Include="Pneumatics\AirCompressor.vb" />
@@ -100,6 +103,12 @@
     </Compile>
     <Compile Include="Pneumatics\IPneumaticConsumer.vb" />
     <Compile Include="Pneumatics\PneumaticConsumer.vb" />
+    <Compile Include="UI\F_HVAC.Designer.vb">
+      <DependentUpon>F_HVAC.vb</DependentUpon>
+    </Compile>
+    <Compile Include="UI\F_HVAC.vb">
+      <SubType>Form</SubType>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="My Project\Resources.resx">
@@ -108,6 +117,9 @@
       <CustomToolNamespace>My.Resources</CustomToolNamespace>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="UI\F_HVAC.resx">
+      <DependentUpon>F_HVAC.vb</DependentUpon>
+    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
     <None Include="Hvac\HVACMap.vaux" />
@@ -121,6 +133,7 @@
       <LastGenOutput>Settings.Designer.vb</LastGenOutput>
     </None>
   </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/HVACMapMock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/HVACMapMock.vb
index 40f31f825d..7d3f80839f 100644
--- a/VECTOAux/VectoAuxiliariesTests/Mocks/HVACMapMock.vb
+++ b/VECTOAux/VectoAuxiliariesTests/Mocks/HVACMapMock.vb
@@ -4,17 +4,14 @@ Namespace Mocks
     Public Class HVACMapMock
         Implements IHVACMap
 
-
+        Public Property MapHeaders As Dictionary(Of String, HVACMapParameter) Implements IHVACMap.MapHeaders
 
         Public Function Initialise() As Boolean Implements IHVACMap.Initialise
             Return True
         End Function
-
         Public Function GetMechanicalDemand(ByVal region As Integer, ByVal season As Integer) As Integer Implements IHVACMap.GetMechanicalDemand
             Return 10
         End Function
-
-
         Public Function GetMapHeaders() As Dictionary(Of String, HVACMapParameter) Implements IHVACMap.GetMapHeaders
 
             Throw New NotImplementedException
@@ -28,10 +25,9 @@ Namespace Mocks
             Throw New NotImplementedException
         End Function
 
-        Public Property MapHeaders As Dictionary(Of String, HVACMapParameter) Implements IHVACMap.MapHeaders
-
         Public Function GetElectricalDemand(region As Integer, season As Integer) As Integer Implements IHVACMap.GetElectricalDemand
             Return 1
         End Function
+
     End Class
 End Namespace
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandTests.vb
index c727b7e8b7..98aa4ef412 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AverageHVACLoadDemandTests.vb
@@ -22,14 +22,14 @@ Namespace UnitTests
         Private Function GetAverageHVACLoadDemandIntance() As AverageHVACLoadDemand
             Dim alt As IAlternator = GetAlternatorMock()
             Dim map As IHVACMap = GetHVACMapMock()
-            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt)
+            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt, Nothing)
             Return target
         End Function
 
         Private Function GetInitialisedAverageHVACLoadDemandIntance() As AverageHVACLoadDemand
             Dim alt As IAlternator = GetAlternatorMock()
             Dim map As IHVACMap = GetHVACMapMock()
-            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt)
+            Dim target As AverageHVACLoadDemand = New AverageHVACLoadDemand(map, alt, Nothing)
             target.Initialise()
             Return target
         End Function
@@ -51,19 +51,19 @@ Namespace UnitTests
         <Test()> Public Sub AverageMechanicalPowerAtCrankTest()
             Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
             Dim expected As Integer = 10
-            Dim actual As Integer = target.AverageMechanicalPowerAtCrank()
+            Dim actual As Integer = target.AverageMechanicalPowerDemandAtCrank(100)
         End Sub
 
         <Test()> Public Sub AverageElectricalPowerAtAlternatorTest()
             Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
             Dim expected As Integer = 10
-            Dim actual As Integer = target.AverageMechanicalPowerAtCrank()
+            Dim actual As Integer = target.AverageMechanicalPowerDemandAtCrank(100)
         End Sub
 
         <Test()> Public Sub AverageElectricalPowerAtCrankTest()
             Dim target As AverageHVACLoadDemand = GetInitialisedAverageHVACLoadDemandIntance()
             Dim expected As Integer = 10
-            Dim actual As Integer = target.AverageMechanicalPowerAtCrank()
+            Dim actual As Integer = target.AverageMechanicalPowerDemandAtCrank(100)
         End Sub
 
     End Class
-- 
GitLab