From a9db5d36faf9783228ea1c7be5e8ef600ec7ba09 Mon Sep 17 00:00:00 2001
From: "Burns, Terry" <Terry.Burns@ricardo.com>
Date: Wed, 29 Oct 2014 15:34:44 +0000
Subject: [PATCH] M0 to M5 are on the Harness and testing out OK except for
 Extrapolation or Limiting issues.

git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1656
---
 .../AuxillaryTestHarness.vbproj               |  74 ++
 .../AuxillaryTestHarness_TemporaryKey.pfx     | Bin 0 -> 1644 bytes
 AuxillaryTestHarness/Dashboard.Designer.vb    | 907 ++++++++++--------
 AuxillaryTestHarness/Dashboard.vb             |  66 +-
 AuxillaryTestHarness/Images/amberLight.jpg    | Bin 0 -> 2305 bytes
 AuxillaryTestHarness/Images/greenLight.jpg    | Bin 0 -> 2120 bytes
 AuxillaryTestHarness/Resource1.Designer.vb    |  67 ++
 AuxillaryTestHarness/Resource1.resx           | 110 +++
 AuxillaryTestHarness/testAlternatorMap.csv    |  36 +
 AuxillaryTestHarness/testCompressorMap.csv    |   8 +
 .../testPneumaticActuationsMap_GOODMAP.csv    |  16 +
 .../VectoAuxiliaries/AuxillaryEnvironment.vb  |   4 +-
 .../IM5_SmartAlternatorSetGeneration.vb       |   6 +-
 .../M5__SmartAlternatorSetGeneration.vb       |   8 +-
 .../Pneumatics/CompressorMap.vb               |   1 -
 .../Pneumatics/M4_AirCompressor.vb            |  18 +-
 .../Pneumatics/PneumaticUserInputsConfig.vb   |   6 +-
 .../TestFiles/testCompressorMap.csv           |  12 +-
 .../UnitTests/AirCompressorTests.vb           |  16 +-
 .../UnitTests/CompressorMapTests.vb           |  26 +-
 .../M5_SmartAlternatorSetGenerationTests.vb   |   6 +-
 21 files changed, 931 insertions(+), 456 deletions(-)
 create mode 100644 AuxillaryTestHarness/AuxillaryTestHarness_TemporaryKey.pfx
 create mode 100644 AuxillaryTestHarness/Images/amberLight.jpg
 create mode 100644 AuxillaryTestHarness/Images/greenLight.jpg
 create mode 100644 AuxillaryTestHarness/Resource1.Designer.vb
 create mode 100644 AuxillaryTestHarness/Resource1.resx
 create mode 100644 AuxillaryTestHarness/testAlternatorMap.csv
 create mode 100644 AuxillaryTestHarness/testCompressorMap.csv
 create mode 100644 AuxillaryTestHarness/testPneumaticActuationsMap_GOODMAP.csv

diff --git a/AuxillaryTestHarness/AuxillaryTestHarness.vbproj b/AuxillaryTestHarness/AuxillaryTestHarness.vbproj
index b935f4aaf6..8329c37ea6 100644
--- a/AuxillaryTestHarness/AuxillaryTestHarness.vbproj
+++ b/AuxillaryTestHarness/AuxillaryTestHarness.vbproj
@@ -17,6 +17,22 @@
     <SccAuxPath>SAK</SccAuxPath>
     <SccProvider>SAK</SccProvider>
     <TargetFrameworkProfile />
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <PublishUrl>C:\Users\tb28\Documents\BusAux\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>2</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <PublishWizardCompleted>true</PublishWizardCompleted>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -50,6 +66,18 @@
   <PropertyGroup>
     <OptionInfer>On</OptionInfer>
   </PropertyGroup>
+  <PropertyGroup>
+    <ManifestCertificateThumbprint>BDAE76DCC298707BA22C181782E417D14495D4B2</ManifestCertificateThumbprint>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ManifestKeyFile>AuxillaryTestHarness_TemporaryKey.pfx</ManifestKeyFile>
+  </PropertyGroup>
+  <PropertyGroup>
+    <GenerateManifests>true</GenerateManifests>
+  </PropertyGroup>
+  <PropertyGroup>
+    <SignManifests>true</SignManifests>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Data" />
@@ -96,6 +124,11 @@
       <DependentUpon>Settings.settings</DependentUpon>
       <DesignTimeSharedInput>True</DesignTimeSharedInput>
     </Compile>
+    <Compile Include="Resource1.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resource1.resx</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Dashboard.resx">
@@ -107,8 +140,14 @@
       <CustomToolNamespace>My.Resources</CustomToolNamespace>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="Resource1.resx">
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resource1.Designer.vb</LastGenOutput>
+    </EmbeddedResource>
   </ItemGroup>
   <ItemGroup>
+    <None Include="AuxillaryTestHarness_TemporaryKey.pfx" />
     <None Include="My Project\Application.myapp">
       <Generator>MyApplicationCodeGenerator</Generator>
       <LastGenOutput>Application.Designer.vb</LastGenOutput>
@@ -120,6 +159,15 @@
       <LastGenOutput>Settings.Designer.vb</LastGenOutput>
     </None>
     <None Include="App.config" />
+    <Content Include="testAlternatorMap.csv">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="testCompressorMap.csv">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="testPneumaticActuationsMap_GOODMAP.csv">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\VECTOAux\VectoAuxiliaries\VectoAuxiliaries.vbproj">
@@ -127,6 +175,32 @@
       <Name>VectoAuxiliaries</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Images\amberLight.jpg" />
+    <EmbeddedResource Include="Images\greenLight.jpg" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include=".NETFramework,Version=v4.0">
+      <Visible>False</Visible>
+      <ProductName>Microsoft .NET Framework 4 %28x86 and x64%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 4.5</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </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/AuxillaryTestHarness/AuxillaryTestHarness_TemporaryKey.pfx b/AuxillaryTestHarness/AuxillaryTestHarness_TemporaryKey.pfx
new file mode 100644
index 0000000000000000000000000000000000000000..a4fc30ecaccc69059fa1358f111e4a93d09e6fc5
GIT binary patch
literal 1644
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

literal 0
HcmV?d00001

diff --git a/AuxillaryTestHarness/Dashboard.Designer.vb b/AuxillaryTestHarness/Dashboard.Designer.vb
index 049a14b418..0baab8ff5c 100644
--- a/AuxillaryTestHarness/Dashboard.Designer.vb
+++ b/AuxillaryTestHarness/Dashboard.Designer.vb
@@ -23,24 +23,22 @@ Partial Class Dashboard
     <System.Diagnostics.DebuggerStepThrough()> _
     Private Sub InitializeComponent()
         Me.components = New System.ComponentModel.Container()
-        Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle5 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle6 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle7 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle8 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle9 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle10 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle11 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
-        Dim DataGridViewCellStyle12 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle25 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle26 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle27 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle28 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle29 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle30 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle31 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle32 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle33 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle34 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle35 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
+        Dim DataGridViewCellStyle36 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle()
         Me.pnlMain = New System.Windows.Forms.Panel()
         Me.btnCancel = New System.Windows.Forms.Button()
-        Me.btnFinish = New System.Windows.Forms.Button()
         Me.btnForward = New System.Windows.Forms.Button()
         Me.btnBack = New System.Windows.Forms.Button()
-        Me.btnStart = New System.Windows.Forms.Button()
         Me.tabMain = New System.Windows.Forms.TabControl()
         Me.tabGeneralConfig = New System.Windows.Forms.TabPage()
         Me.cboCycle = New System.Windows.Forms.ComboBox()
@@ -130,6 +128,22 @@ Partial Class Dashboard
         Me.txtHVACElectricalLoadPowerWatts = New System.Windows.Forms.TextBox()
         Me.lblHVACElectricalLoadPowerWatts = New System.Windows.Forms.Label()
         Me.tabPlayground = New System.Windows.Forms.TabPage()
+        Me.lblM4_AirCompressor = New System.Windows.Forms.Label()
+        Me.Panel1 = New System.Windows.Forms.Panel()
+        Me.lblM4_PowerAtCrankFromPSCompressorON = New System.Windows.Forms.Label()
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF = New System.Windows.Forms.Label()
+        Me.lblM4_CompressorOnOffPowerDelta = New System.Windows.Forms.Label()
+        Me.lblM4_CompressorFlowRate = New System.Windows.Forms.Label()
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON = New System.Windows.Forms.TextBox()
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF = New System.Windows.Forms.TextBox()
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff = New System.Windows.Forms.TextBox()
+        Me.txtM4_out_CompressorFlowRate = New System.Windows.Forms.TextBox()
+        Me.lblM3_AveragePneumaticLoad = New System.Windows.Forms.Label()
+        Me.pnl_M3_Displays = New System.Windows.Forms.Panel()
+        Me.lblM3_TotAirConsumptionPerCycleLitres = New System.Windows.Forms.Label()
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics = New System.Windows.Forms.Label()
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres = New System.Windows.Forms.TextBox()
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics = New System.Windows.Forms.TextBox()
         Me.lblM2AverageElectricalLoadTitle = New System.Windows.Forms.Label()
         Me.pnl_M2_Displays = New System.Windows.Forms.Panel()
         Me.lblM2_AvgPwrDmdAtCrankFromElectrics = New System.Windows.Forms.Label()
@@ -166,37 +180,32 @@ Partial Class Dashboard
         Me.lblAlternatorsEfficiency = New System.Windows.Forms.Label()
         Me.txtM0_Out_AlternatorsEfficiency = New System.Windows.Forms.TextBox()
         Me.txtM0_Out_HVacElectricalCurrentDemand = New System.Windows.Forms.TextBox()
-        Me.chkClutchEngaged = New System.Windows.Forms.CheckBox()
-        Me.lblTotalCycleTimeSeconds = New System.Windows.Forms.Label()
-        Me.lblEngineSpeed = New System.Windows.Forms.Label()
-        Me.lblEngineMotoringPower = New System.Windows.Forms.Label()
-        Me.lblEngineDrivelineTorque = New System.Windows.Forms.Label()
-        Me.lblEngineDrivelinePower = New System.Windows.Forms.Label()
-        Me.txtTotalCycleTimeSeconds = New System.Windows.Forms.TextBox()
-        Me.txtEngineSpeed = New System.Windows.Forms.TextBox()
-        Me.txtEngineMotoringPower = New System.Windows.Forms.TextBox()
-        Me.txtEngineDrivelineTorque = New System.Windows.Forms.TextBox()
-        Me.txtEngineDrivelinePower = New System.Windows.Forms.TextBox()
         Me.resultCardContextMenu = New System.Windows.Forms.ContextMenuStrip(Me.components)
         Me.DeleteToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
         Me.ErrorProvider = New System.Windows.Forms.ErrorProvider(Me.components)
         Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
-        Me.pnl_M3_Displays = New System.Windows.Forms.Panel()
-        Me.lblM3_AveragePneumaticLoad = New System.Windows.Forms.Label()
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics = New System.Windows.Forms.TextBox()
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres = New System.Windows.Forms.TextBox()
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics = New System.Windows.Forms.Label()
-        Me.lblM3_TotAirConsumptionPerCycleLitres = New System.Windows.Forms.Label()
-        Me.Panel1 = New System.Windows.Forms.Panel()
-        Me.txtM4_out_CompressorFlowRate = New System.Windows.Forms.TextBox()
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff = New System.Windows.Forms.TextBox()
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF = New System.Windows.Forms.TextBox()
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON = New System.Windows.Forms.TextBox()
-        Me.lblM4_CompressorFlowRate = New System.Windows.Forms.Label()
-        Me.lblM4_CompressorOnOffPowerDelta = New System.Windows.Forms.Label()
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF = New System.Windows.Forms.Label()
-        Me.lblM4_PowerAtCrankFromPSCompressorON = New System.Windows.Forms.Label()
-        Me.lblM4_AirCompressor = New System.Windows.Forms.Label()
+        Me.Panel3 = New System.Windows.Forms.Panel()
+        Me.lblM5_SmartAltSetGeneration = New System.Windows.Forms.Label()
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts = New System.Windows.Forms.TextBox()
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts = New System.Windows.Forms.TextBox()
+        Me.lblM5_AltRegenPowerAtCrankIdleW = New System.Windows.Forms.Label()
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts = New System.Windows.Forms.Label()
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts = New System.Windows.Forms.TextBox()
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts = New System.Windows.Forms.Label()
+        Me.txtEngineDrivelinePower = New System.Windows.Forms.TextBox()
+        Me.txtEngineDrivelineTorque = New System.Windows.Forms.TextBox()
+        Me.txtEngineMotoringPower = New System.Windows.Forms.TextBox()
+        Me.txtEngineSpeed = New System.Windows.Forms.TextBox()
+        Me.txtTotalCycleTimeSeconds = New System.Windows.Forms.TextBox()
+        Me.lblEngineDrivelinePower = New System.Windows.Forms.Label()
+        Me.lblEngineDrivelineTorque = New System.Windows.Forms.Label()
+        Me.lblEngineMotoringPower = New System.Windows.Forms.Label()
+        Me.lblEngineSpeed = New System.Windows.Forms.Label()
+        Me.lblTotalCycleTimeSeconds = New System.Windows.Forms.Label()
+        Me.chkClutchEngaged = New System.Windows.Forms.CheckBox()
+        Me.btnStart = New System.Windows.Forms.Button()
+        Me.btnFinish = New System.Windows.Forms.Button()
+        Me.PictureBox1 = New System.Windows.Forms.PictureBox()
         Me.pnlMain.SuspendLayout
         Me.tabMain.SuspendLayout
         Me.tabGeneralConfig.SuspendLayout
@@ -210,51 +219,42 @@ Partial Class Dashboard
         Me.pnlPneumaticAuxillaries.SuspendLayout
         Me.tabHVACConfig.SuspendLayout
         Me.tabPlayground.SuspendLayout
+        Me.Panel1.SuspendLayout
+        Me.pnl_M3_Displays.SuspendLayout
         Me.pnl_M2_Displays.SuspendLayout
         Me.pnl_M1_Displays.SuspendLayout
         Me.pnl_M05_Displays.SuspendLayout
         Me.pnl_M0_Displays.SuspendLayout
         Me.resultCardContextMenu.SuspendLayout
         CType(Me.ErrorProvider,System.ComponentModel.ISupportInitialize).BeginInit
-        Me.pnl_M3_Displays.SuspendLayout
-        Me.Panel1.SuspendLayout
+        Me.Panel3.SuspendLayout
+        CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit
         Me.SuspendLayout
         '
         'pnlMain
         '
         Me.pnlMain.Controls.Add(Me.btnCancel)
-        Me.pnlMain.Controls.Add(Me.btnFinish)
         Me.pnlMain.Controls.Add(Me.btnForward)
         Me.pnlMain.Controls.Add(Me.btnBack)
-        Me.pnlMain.Controls.Add(Me.btnStart)
         Me.pnlMain.Controls.Add(Me.tabMain)
         Me.pnlMain.Dock = System.Windows.Forms.DockStyle.Fill
         Me.pnlMain.Location = New System.Drawing.Point(0, 0)
         Me.pnlMain.Name = "pnlMain"
-        Me.pnlMain.Size = New System.Drawing.Size(945, 712)
+        Me.pnlMain.Size = New System.Drawing.Size(945, 742)
         Me.pnlMain.TabIndex = 1
         '
         'btnCancel
         '
-        Me.btnCancel.Location = New System.Drawing.Point(827, 676)
+        Me.btnCancel.Location = New System.Drawing.Point(827, 702)
         Me.btnCancel.Name = "btnCancel"
         Me.btnCancel.Size = New System.Drawing.Size(75, 23)
         Me.btnCancel.TabIndex = 5
         Me.btnCancel.Text = "Cancel"
         Me.btnCancel.UseVisualStyleBackColor = true
         '
-        'btnFinish
-        '
-        Me.btnFinish.Location = New System.Drawing.Point(745, 677)
-        Me.btnFinish.Name = "btnFinish"
-        Me.btnFinish.Size = New System.Drawing.Size(75, 23)
-        Me.btnFinish.TabIndex = 4
-        Me.btnFinish.Text = "Finish  >|"
-        Me.btnFinish.UseVisualStyleBackColor = true
-        '
         'btnForward
         '
-        Me.btnForward.Location = New System.Drawing.Point(621, 677)
+        Me.btnForward.Location = New System.Drawing.Point(621, 703)
         Me.btnForward.Name = "btnForward"
         Me.btnForward.Size = New System.Drawing.Size(75, 23)
         Me.btnForward.TabIndex = 3
@@ -263,22 +263,13 @@ Partial Class Dashboard
         '
         'btnBack
         '
-        Me.btnBack.Location = New System.Drawing.Point(537, 677)
+        Me.btnBack.Location = New System.Drawing.Point(537, 703)
         Me.btnBack.Name = "btnBack"
         Me.btnBack.Size = New System.Drawing.Size(75, 23)
         Me.btnBack.TabIndex = 2
         Me.btnBack.Text = "<< Back"
         Me.btnBack.UseVisualStyleBackColor = true
         '
-        'btnStart
-        '
-        Me.btnStart.Location = New System.Drawing.Point(420, 677)
-        Me.btnStart.Name = "btnStart"
-        Me.btnStart.Size = New System.Drawing.Size(75, 23)
-        Me.btnStart.TabIndex = 1
-        Me.btnStart.Text = "|< Start"
-        Me.btnStart.UseVisualStyleBackColor = true
-        '
         'tabMain
         '
         Me.tabMain.AccessibleDescription = ""
@@ -291,7 +282,7 @@ Partial Class Dashboard
         Me.tabMain.Location = New System.Drawing.Point(12, 12)
         Me.tabMain.Name = "tabMain"
         Me.tabMain.SelectedIndex = 0
-        Me.tabMain.Size = New System.Drawing.Size(917, 658)
+        Me.tabMain.Size = New System.Drawing.Size(917, 669)
         Me.tabMain.TabIndex = 0
         Me.tabMain.Tag = ""
         '
@@ -304,7 +295,7 @@ Partial Class Dashboard
         Me.tabGeneralConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabGeneralConfig.Name = "tabGeneralConfig"
         Me.tabGeneralConfig.Padding = New System.Windows.Forms.Padding(3)
-        Me.tabGeneralConfig.Size = New System.Drawing.Size(909, 610)
+        Me.tabGeneralConfig.Size = New System.Drawing.Size(909, 632)
         Me.tabGeneralConfig.TabIndex = 0
         Me.tabGeneralConfig.Text = "GeneralConfig"
         Me.tabGeneralConfig.UseVisualStyleBackColor = true
@@ -366,7 +357,7 @@ Partial Class Dashboard
         Me.tabElectricalConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabElectricalConfig.Name = "tabElectricalConfig"
         Me.tabElectricalConfig.Padding = New System.Windows.Forms.Padding(3)
-        Me.tabElectricalConfig.Size = New System.Drawing.Size(909, 610)
+        Me.tabElectricalConfig.Size = New System.Drawing.Size(909, 632)
         Me.tabElectricalConfig.TabIndex = 1
         Me.tabElectricalConfig.Text = "ElectricalConfig"
         Me.tabElectricalConfig.UseVisualStyleBackColor = true
@@ -382,97 +373,97 @@ Partial Class Dashboard
         '
         'gvResultsCardOverrun
         '
-        DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardOverrun.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1
+        DataGridViewCellStyle25.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle25.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle25.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle25.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle25.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle25.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle25.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardOverrun.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle25
         Me.gvResultsCardOverrun.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
-        DataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window
-        DataGridViewCellStyle2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText
-        DataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.gvResultsCardOverrun.DefaultCellStyle = DataGridViewCellStyle2
+        DataGridViewCellStyle26.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle26.BackColor = System.Drawing.SystemColors.Window
+        DataGridViewCellStyle26.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle26.ForeColor = System.Drawing.SystemColors.ControlText
+        DataGridViewCellStyle26.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle26.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle26.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
+        Me.gvResultsCardOverrun.DefaultCellStyle = DataGridViewCellStyle26
         Me.gvResultsCardOverrun.Location = New System.Drawing.Point(590, 451)
         Me.gvResultsCardOverrun.Name = "gvResultsCardOverrun"
-        DataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardOverrun.RowHeadersDefaultCellStyle = DataGridViewCellStyle3
+        DataGridViewCellStyle27.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle27.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle27.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle27.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle27.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle27.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle27.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardOverrun.RowHeadersDefaultCellStyle = DataGridViewCellStyle27
         Me.gvResultsCardOverrun.Size = New System.Drawing.Size(246, 125)
         Me.gvResultsCardOverrun.TabIndex = 18
         '
         'gvResultsCardTraction
         '
-        DataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle4.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardTraction.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle4
+        DataGridViewCellStyle28.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle28.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle28.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle28.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle28.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle28.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle28.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardTraction.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle28
         Me.gvResultsCardTraction.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
-        DataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window
-        DataGridViewCellStyle5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText
-        DataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.gvResultsCardTraction.DefaultCellStyle = DataGridViewCellStyle5
+        DataGridViewCellStyle29.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle29.BackColor = System.Drawing.SystemColors.Window
+        DataGridViewCellStyle29.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle29.ForeColor = System.Drawing.SystemColors.ControlText
+        DataGridViewCellStyle29.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle29.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle29.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
+        Me.gvResultsCardTraction.DefaultCellStyle = DataGridViewCellStyle29
         Me.gvResultsCardTraction.Location = New System.Drawing.Point(311, 451)
         Me.gvResultsCardTraction.Name = "gvResultsCardTraction"
-        DataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardTraction.RowHeadersDefaultCellStyle = DataGridViewCellStyle6
+        DataGridViewCellStyle30.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle30.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle30.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle30.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle30.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle30.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle30.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardTraction.RowHeadersDefaultCellStyle = DataGridViewCellStyle30
         Me.gvResultsCardTraction.Size = New System.Drawing.Size(258, 125)
         Me.gvResultsCardTraction.TabIndex = 17
         '
         'gvResultsCardIdle
         '
-        DataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardIdle.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle7
+        DataGridViewCellStyle31.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle31.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle31.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle31.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle31.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle31.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle31.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardIdle.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle31
         Me.gvResultsCardIdle.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
-        DataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window
-        DataGridViewCellStyle8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText
-        DataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.gvResultsCardIdle.DefaultCellStyle = DataGridViewCellStyle8
+        DataGridViewCellStyle32.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle32.BackColor = System.Drawing.SystemColors.Window
+        DataGridViewCellStyle32.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle32.ForeColor = System.Drawing.SystemColors.ControlText
+        DataGridViewCellStyle32.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle32.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle32.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
+        Me.gvResultsCardIdle.DefaultCellStyle = DataGridViewCellStyle32
         Me.gvResultsCardIdle.Location = New System.Drawing.Point(35, 451)
         Me.gvResultsCardIdle.Name = "gvResultsCardIdle"
-        DataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle9.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvResultsCardIdle.RowHeadersDefaultCellStyle = DataGridViewCellStyle9
+        DataGridViewCellStyle33.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle33.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle33.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle33.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle33.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle33.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle33.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvResultsCardIdle.RowHeadersDefaultCellStyle = DataGridViewCellStyle33
         Me.gvResultsCardIdle.Size = New System.Drawing.Size(256, 125)
         Me.gvResultsCardIdle.TabIndex = 16
         '
@@ -524,33 +515,33 @@ Partial Class Dashboard
         '
         'gvElectricalConsumables
         '
-        DataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle10.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle10.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvElectricalConsumables.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle10
+        DataGridViewCellStyle34.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle34.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle34.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle34.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle34.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle34.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle34.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvElectricalConsumables.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle34
         Me.gvElectricalConsumables.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
-        DataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window
-        DataGridViewCellStyle11.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.ControlText
-        DataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
-        Me.gvElectricalConsumables.DefaultCellStyle = DataGridViewCellStyle11
+        DataGridViewCellStyle35.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle35.BackColor = System.Drawing.SystemColors.Window
+        DataGridViewCellStyle35.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle35.ForeColor = System.Drawing.SystemColors.ControlText
+        DataGridViewCellStyle35.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle35.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle35.WrapMode = System.Windows.Forms.DataGridViewTriState.[False]
+        Me.gvElectricalConsumables.DefaultCellStyle = DataGridViewCellStyle35
         Me.gvElectricalConsumables.Location = New System.Drawing.Point(33, 170)
         Me.gvElectricalConsumables.Name = "gvElectricalConsumables"
-        DataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
-        DataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control
-        DataGridViewCellStyle12.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        DataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText
-        DataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight
-        DataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText
-        DataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
-        Me.gvElectricalConsumables.RowHeadersDefaultCellStyle = DataGridViewCellStyle12
+        DataGridViewCellStyle36.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft
+        DataGridViewCellStyle36.BackColor = System.Drawing.SystemColors.Control
+        DataGridViewCellStyle36.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        DataGridViewCellStyle36.ForeColor = System.Drawing.SystemColors.WindowText
+        DataGridViewCellStyle36.SelectionBackColor = System.Drawing.SystemColors.Highlight
+        DataGridViewCellStyle36.SelectionForeColor = System.Drawing.SystemColors.HighlightText
+        DataGridViewCellStyle36.WrapMode = System.Windows.Forms.DataGridViewTriState.[True]
+        Me.gvElectricalConsumables.RowHeadersDefaultCellStyle = DataGridViewCellStyle36
         Me.gvElectricalConsumables.Size = New System.Drawing.Size(803, 250)
         Me.gvElectricalConsumables.TabIndex = 10
         '
@@ -624,7 +615,7 @@ Partial Class Dashboard
         Me.tabPneumaticConfig.Controls.Add(Me.pnlPneumaticAuxillaries)
         Me.tabPneumaticConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabPneumaticConfig.Name = "tabPneumaticConfig"
-        Me.tabPneumaticConfig.Size = New System.Drawing.Size(909, 610)
+        Me.tabPneumaticConfig.Size = New System.Drawing.Size(909, 632)
         Me.tabPneumaticConfig.TabIndex = 2
         Me.tabPneumaticConfig.Text = "PneumaticConfig"
         Me.tabPneumaticConfig.UseVisualStyleBackColor = true
@@ -1163,7 +1154,7 @@ Partial Class Dashboard
         Me.tabHVACConfig.Controls.Add(Me.lblHVACElectricalLoadPowerWatts)
         Me.tabHVACConfig.Location = New System.Drawing.Point(4, 22)
         Me.tabHVACConfig.Name = "tabHVACConfig"
-        Me.tabHVACConfig.Size = New System.Drawing.Size(909, 610)
+        Me.tabHVACConfig.Size = New System.Drawing.Size(909, 632)
         Me.tabHVACConfig.TabIndex = 3
         Me.tabHVACConfig.Text = "HVACConfig"
         Me.tabHVACConfig.UseVisualStyleBackColor = true
@@ -1230,10 +1221,15 @@ Partial Class Dashboard
         'tabPlayground
         '
         Me.tabPlayground.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+        Me.tabPlayground.Controls.Add(Me.lblM5_SmartAltSetGeneration)
+        Me.tabPlayground.Controls.Add(Me.Panel3)
+        Me.tabPlayground.Controls.Add(Me.PictureBox1)
         Me.tabPlayground.Controls.Add(Me.lblM4_AirCompressor)
+        Me.tabPlayground.Controls.Add(Me.btnFinish)
         Me.tabPlayground.Controls.Add(Me.Panel1)
         Me.tabPlayground.Controls.Add(Me.lblM3_AveragePneumaticLoad)
         Me.tabPlayground.Controls.Add(Me.pnl_M3_Displays)
+        Me.tabPlayground.Controls.Add(Me.btnStart)
         Me.tabPlayground.Controls.Add(Me.lblM2AverageElectricalLoadTitle)
         Me.tabPlayground.Controls.Add(Me.pnl_M2_Displays)
         Me.tabPlayground.Controls.Add(Me.lblM1_HVACAverageLoad)
@@ -1255,11 +1251,161 @@ Partial Class Dashboard
         Me.tabPlayground.Controls.Add(Me.txtEngineDrivelinePower)
         Me.tabPlayground.Location = New System.Drawing.Point(4, 22)
         Me.tabPlayground.Name = "tabPlayground"
-        Me.tabPlayground.Size = New System.Drawing.Size(909, 632)
+        Me.tabPlayground.Size = New System.Drawing.Size(909, 643)
         Me.tabPlayground.TabIndex = 4
         Me.tabPlayground.Text = "Playground"
         Me.tabPlayground.UseVisualStyleBackColor = true
         '
+        'lblM4_AirCompressor
+        '
+        Me.lblM4_AirCompressor.AutoSize = true
+        Me.lblM4_AirCompressor.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        Me.lblM4_AirCompressor.Location = New System.Drawing.Point(379, 265)
+        Me.lblM4_AirCompressor.Name = "lblM4_AirCompressor"
+        Me.lblM4_AirCompressor.Size = New System.Drawing.Size(112, 13)
+        Me.lblM4_AirCompressor.TabIndex = 33
+        Me.lblM4_AirCompressor.Text = "M4-Air Compressor"
+        '
+        'Panel1
+        '
+        Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+        Me.Panel1.Controls.Add(Me.lblM4_PowerAtCrankFromPSCompressorON)
+        Me.Panel1.Controls.Add(Me.lblM4_PowerAtCrankFromPSCompressorOFF)
+        Me.Panel1.Controls.Add(Me.lblM4_CompressorOnOffPowerDelta)
+        Me.Panel1.Controls.Add(Me.lblM4_CompressorFlowRate)
+        Me.Panel1.Controls.Add(Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON)
+        Me.Panel1.Controls.Add(Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF)
+        Me.Panel1.Controls.Add(Me.txtM4_out_CompresssorPwrOnMinusPwrOff)
+        Me.Panel1.Controls.Add(Me.txtM4_out_CompressorFlowRate)
+        Me.Panel1.Location = New System.Drawing.Point(379, 281)
+        Me.Panel1.Name = "Panel1"
+        Me.Panel1.Size = New System.Drawing.Size(200, 183)
+        Me.Panel1.TabIndex = 32
+        '
+        'lblM4_PowerAtCrankFromPSCompressorON
+        '
+        Me.lblM4_PowerAtCrankFromPSCompressorON.AutoSize = true
+        Me.lblM4_PowerAtCrankFromPSCompressorON.Location = New System.Drawing.Point(13, 129)
+        Me.lblM4_PowerAtCrankFromPSCompressorON.Name = "lblM4_PowerAtCrankFromPSCompressorON"
+        Me.lblM4_PowerAtCrankFromPSCompressorON.Size = New System.Drawing.Size(181, 13)
+        Me.lblM4_PowerAtCrankFromPSCompressorON.TabIndex = 7
+        Me.lblM4_PowerAtCrankFromPSCompressorON.Text = "Pwr@Crank From PS CompressorON"
+        '
+        'lblM4_PowerAtCrankFromPSCompressorOFF
+        '
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.AutoSize = true
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Location = New System.Drawing.Point(13, 87)
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Name = "lblM4_PowerAtCrankFromPSCompressorOFF"
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Size = New System.Drawing.Size(185, 13)
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.TabIndex = 6
+        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Text = "Pwr@Crank From PS CompressorOFF"
+        '
+        'lblM4_CompressorOnOffPowerDelta
+        '
+        Me.lblM4_CompressorOnOffPowerDelta.AutoSize = true
+        Me.lblM4_CompressorOnOffPowerDelta.Location = New System.Drawing.Point(13, 50)
+        Me.lblM4_CompressorOnOffPowerDelta.Name = "lblM4_CompressorOnOffPowerDelta"
+        Me.lblM4_CompressorOnOffPowerDelta.Size = New System.Drawing.Size(162, 13)
+        Me.lblM4_CompressorOnOffPowerDelta.TabIndex = 5
+        Me.lblM4_CompressorOnOffPowerDelta.Text = "Compressor PwrOn minus PwrOff"
+        '
+        'lblM4_CompressorFlowRate
+        '
+        Me.lblM4_CompressorFlowRate.AutoSize = true
+        Me.lblM4_CompressorFlowRate.Location = New System.Drawing.Point(13, 7)
+        Me.lblM4_CompressorFlowRate.Name = "lblM4_CompressorFlowRate"
+        Me.lblM4_CompressorFlowRate.Size = New System.Drawing.Size(143, 13)
+        Me.lblM4_CompressorFlowRate.TabIndex = 4
+        Me.lblM4_CompressorFlowRate.Text = "Compressor Flow Rate L/min"
+        '
+        'txtM4_out_PowerAtCrankFromPneumaticsCompressorON
+        '
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Location = New System.Drawing.Point(13, 144)
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Name = "txtM4_out_PowerAtCrankFromPneumaticsCompressorON"
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Size = New System.Drawing.Size(100, 20)
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.TabIndex = 3
+        '
+        'txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF
+        '
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Location = New System.Drawing.Point(13, 103)
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Name = "txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF"
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Size = New System.Drawing.Size(100, 20)
+        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.TabIndex = 2
+        '
+        'txtM4_out_CompresssorPwrOnMinusPwrOff
+        '
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Location = New System.Drawing.Point(13, 65)
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Name = "txtM4_out_CompresssorPwrOnMinusPwrOff"
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Size = New System.Drawing.Size(100, 20)
+        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.TabIndex = 1
+        '
+        'txtM4_out_CompressorFlowRate
+        '
+        Me.txtM4_out_CompressorFlowRate.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM4_out_CompressorFlowRate.Location = New System.Drawing.Point(13, 24)
+        Me.txtM4_out_CompressorFlowRate.Name = "txtM4_out_CompressorFlowRate"
+        Me.txtM4_out_CompressorFlowRate.Size = New System.Drawing.Size(100, 20)
+        Me.txtM4_out_CompressorFlowRate.TabIndex = 0
+        '
+        'lblM3_AveragePneumaticLoad
+        '
+        Me.lblM3_AveragePneumaticLoad.AutoSize = true
+        Me.lblM3_AveragePneumaticLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        Me.lblM3_AveragePneumaticLoad.Location = New System.Drawing.Point(376, 141)
+        Me.lblM3_AveragePneumaticLoad.Name = "lblM3_AveragePneumaticLoad"
+        Me.lblM3_AveragePneumaticLoad.Size = New System.Drawing.Size(195, 13)
+        Me.lblM3_AveragePneumaticLoad.TabIndex = 31
+        Me.lblM3_AveragePneumaticLoad.Text = "M3-Avg Pneumatic Load Demand"
+        '
+        'pnl_M3_Displays
+        '
+        Me.pnl_M3_Displays.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+        Me.pnl_M3_Displays.Controls.Add(Me.lblM3_TotAirConsumptionPerCycleLitres)
+        Me.pnl_M3_Displays.Controls.Add(Me.lbl_M3_AvgPowerAtCrankFromPneumatics)
+        Me.pnl_M3_Displays.Controls.Add(Me.txtM3_out_TotalAirConsumedPerCycleInLitres)
+        Me.pnl_M3_Displays.Controls.Add(Me.txtM3_out_AveragePowerAtCrankFromPneumatics)
+        Me.pnl_M3_Displays.Location = New System.Drawing.Point(379, 159)
+        Me.pnl_M3_Displays.Name = "pnl_M3_Displays"
+        Me.pnl_M3_Displays.Size = New System.Drawing.Size(200, 100)
+        Me.pnl_M3_Displays.TabIndex = 30
+        '
+        'lblM3_TotAirConsumptionPerCycleLitres
+        '
+        Me.lblM3_TotAirConsumptionPerCycleLitres.AutoSize = true
+        Me.lblM3_TotAirConsumptionPerCycleLitres.Location = New System.Drawing.Point(8, 49)
+        Me.lblM3_TotAirConsumptionPerCycleLitres.Name = "lblM3_TotAirConsumptionPerCycleLitres"
+        Me.lblM3_TotAirConsumptionPerCycleLitres.Size = New System.Drawing.Size(136, 13)
+        Me.lblM3_TotAirConsumptionPerCycleLitres.TabIndex = 3
+        Me.lblM3_TotAirConsumptionPerCycleLitres.Text = "Total Air Cosumed/Cycle(L)"
+        '
+        'lbl_M3_AvgPowerAtCrankFromPneumatics
+        '
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.AutoSize = true
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Location = New System.Drawing.Point(9, 4)
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Name = "lbl_M3_AvgPowerAtCrankFromPneumatics"
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Size = New System.Drawing.Size(182, 13)
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.TabIndex = 2
+        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Text = "Avg Power@Crank From Pneumatics"
+        '
+        'txtM3_out_TotalAirConsumedPerCycleInLitres
+        '
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Location = New System.Drawing.Point(10, 67)
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Name = "txtM3_out_TotalAirConsumedPerCycleInLitres"
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Size = New System.Drawing.Size(100, 20)
+        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.TabIndex = 1
+        '
+        'txtM3_out_AveragePowerAtCrankFromPneumatics
+        '
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Location = New System.Drawing.Point(10, 22)
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Name = "txtM3_out_AveragePowerAtCrankFromPneumatics"
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Size = New System.Drawing.Size(100, 20)
+        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.TabIndex = 0
+        '
         'lblM2AverageElectricalLoadTitle
         '
         Me.lblM2AverageElectricalLoadTitle.AutoSize = true
@@ -1339,7 +1485,7 @@ Partial Class Dashboard
         Me.pnl_M1_Displays.Controls.Add(Me.txtM1_out_AvgPowerDemandAtCrankMech)
         Me.pnl_M1_Displays.Location = New System.Drawing.Point(166, 442)
         Me.pnl_M1_Displays.Name = "pnl_M1_Displays"
-        Me.pnl_M1_Displays.Size = New System.Drawing.Size(200, 176)
+        Me.pnl_M1_Displays.Size = New System.Drawing.Size(200, 185)
         Me.pnl_M1_Displays.TabIndex = 26
         '
         'lblM1_HVACFuelling
@@ -1600,96 +1746,6 @@ Partial Class Dashboard
         Me.txtM0_Out_HVacElectricalCurrentDemand.Size = New System.Drawing.Size(100, 20)
         Me.txtM0_Out_HVacElectricalCurrentDemand.TabIndex = 0
         '
-        'chkClutchEngaged
-        '
-        Me.chkClutchEngaged.AutoSize = true
-        Me.chkClutchEngaged.Location = New System.Drawing.Point(25, 13)
-        Me.chkClutchEngaged.Name = "chkClutchEngaged"
-        Me.chkClutchEngaged.Size = New System.Drawing.Size(102, 17)
-        Me.chkClutchEngaged.TabIndex = 20
-        Me.chkClutchEngaged.Text = "Clutch Engaged"
-        Me.chkClutchEngaged.UseVisualStyleBackColor = true
-        '
-        'lblTotalCycleTimeSeconds
-        '
-        Me.lblTotalCycleTimeSeconds.AutoSize = true
-        Me.lblTotalCycleTimeSeconds.Location = New System.Drawing.Point(25, 230)
-        Me.lblTotalCycleTimeSeconds.Name = "lblTotalCycleTimeSeconds"
-        Me.lblTotalCycleTimeSeconds.Size = New System.Drawing.Size(134, 13)
-        Me.lblTotalCycleTimeSeconds.TabIndex = 14
-        Me.lblTotalCycleTimeSeconds.Text = "Total Cycle Time Seconds "
-        '
-        'lblEngineSpeed
-        '
-        Me.lblEngineSpeed.AutoSize = true
-        Me.lblEngineSpeed.Location = New System.Drawing.Point(23, 185)
-        Me.lblEngineSpeed.Name = "lblEngineSpeed"
-        Me.lblEngineSpeed.Size = New System.Drawing.Size(107, 13)
-        Me.lblEngineSpeed.TabIndex = 13
-        Me.lblEngineSpeed.Text = "Engine Speed (RPM)"
-        '
-        'lblEngineMotoringPower
-        '
-        Me.lblEngineMotoringPower.AutoSize = true
-        Me.lblEngineMotoringPower.Location = New System.Drawing.Point(24, 141)
-        Me.lblEngineMotoringPower.Name = "lblEngineMotoringPower"
-        Me.lblEngineMotoringPower.Size = New System.Drawing.Size(117, 13)
-        Me.lblEngineMotoringPower.TabIndex = 12
-        Me.lblEngineMotoringPower.Text = "Engine Motoring Power"
-        '
-        'lblEngineDrivelineTorque
-        '
-        Me.lblEngineDrivelineTorque.AutoSize = true
-        Me.lblEngineDrivelineTorque.Location = New System.Drawing.Point(24, 96)
-        Me.lblEngineDrivelineTorque.Name = "lblEngineDrivelineTorque"
-        Me.lblEngineDrivelineTorque.Size = New System.Drawing.Size(121, 13)
-        Me.lblEngineDrivelineTorque.TabIndex = 11
-        Me.lblEngineDrivelineTorque.Text = "Engine Driveline Torque"
-        '
-        'lblEngineDrivelinePower
-        '
-        Me.lblEngineDrivelinePower.AutoSize = true
-        Me.lblEngineDrivelinePower.Location = New System.Drawing.Point(22, 54)
-        Me.lblEngineDrivelinePower.Name = "lblEngineDrivelinePower"
-        Me.lblEngineDrivelinePower.Size = New System.Drawing.Size(120, 13)
-        Me.lblEngineDrivelinePower.TabIndex = 10
-        Me.lblEngineDrivelinePower.Text = "Engine Driveline Power "
-        '
-        'txtTotalCycleTimeSeconds
-        '
-        Me.txtTotalCycleTimeSeconds.Location = New System.Drawing.Point(25, 247)
-        Me.txtTotalCycleTimeSeconds.Name = "txtTotalCycleTimeSeconds"
-        Me.txtTotalCycleTimeSeconds.Size = New System.Drawing.Size(100, 20)
-        Me.txtTotalCycleTimeSeconds.TabIndex = 5
-        '
-        'txtEngineSpeed
-        '
-        Me.txtEngineSpeed.Location = New System.Drawing.Point(25, 198)
-        Me.txtEngineSpeed.Name = "txtEngineSpeed"
-        Me.txtEngineSpeed.Size = New System.Drawing.Size(100, 20)
-        Me.txtEngineSpeed.TabIndex = 4
-        '
-        'txtEngineMotoringPower
-        '
-        Me.txtEngineMotoringPower.Location = New System.Drawing.Point(25, 158)
-        Me.txtEngineMotoringPower.Name = "txtEngineMotoringPower"
-        Me.txtEngineMotoringPower.Size = New System.Drawing.Size(100, 20)
-        Me.txtEngineMotoringPower.TabIndex = 3
-        '
-        'txtEngineDrivelineTorque
-        '
-        Me.txtEngineDrivelineTorque.Location = New System.Drawing.Point(25, 113)
-        Me.txtEngineDrivelineTorque.Name = "txtEngineDrivelineTorque"
-        Me.txtEngineDrivelineTorque.Size = New System.Drawing.Size(100, 20)
-        Me.txtEngineDrivelineTorque.TabIndex = 2
-        '
-        'txtEngineDrivelinePower
-        '
-        Me.txtEngineDrivelinePower.Location = New System.Drawing.Point(25, 69)
-        Me.txtEngineDrivelinePower.Name = "txtEngineDrivelinePower"
-        Me.txtEngineDrivelinePower.Size = New System.Drawing.Size(100, 20)
-        Me.txtEngineDrivelinePower.TabIndex = 1
-        '
         'resultCardContextMenu
         '
         Me.resultCardContextMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DeleteToolStripMenuItem})
@@ -1709,161 +1765,203 @@ Partial Class Dashboard
         'Timer1
         '
         '
-        'pnl_M3_Displays
+        'Panel3
+        '
+        Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
+        Me.Panel3.Controls.Add(Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts)
+        Me.Panel3.Controls.Add(Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts)
+        Me.Panel3.Controls.Add(Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts)
+        Me.Panel3.Controls.Add(Me.lblM5_AltRegenPowerAtCrankIdleW)
+        Me.Panel3.Controls.Add(Me.txtM5_out_AltRegenPowerAtCrankTractionWatts)
+        Me.Panel3.Controls.Add(Me.txtM5_out_AltRegenPowerAtCrankIdleWatts)
+        Me.Panel3.Location = New System.Drawing.Point(380, 486)
+        Me.Panel3.Name = "Panel3"
+        Me.Panel3.Size = New System.Drawing.Size(197, 141)
+        Me.Panel3.TabIndex = 36
+        '
+        'lblM5_SmartAltSetGeneration
+        '
+        Me.lblM5_SmartAltSetGeneration.AutoSize = true
+        Me.lblM5_SmartAltSetGeneration.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
+        Me.lblM5_SmartAltSetGeneration.Location = New System.Drawing.Point(379, 470)
+        Me.lblM5_SmartAltSetGeneration.Name = "lblM5_SmartAltSetGeneration"
+        Me.lblM5_SmartAltSetGeneration.Size = New System.Drawing.Size(168, 13)
+        Me.lblM5_SmartAltSetGeneration.TabIndex = 37
+        Me.lblM5_SmartAltSetGeneration.Text = "M5-Smart Alt Set Generation"
+        '
+        'txtM5_out_AltRegenPowerAtCrankIdleWatts
+        '
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts.Location = New System.Drawing.Point(8, 21)
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts.Name = "txtM5_out_AltRegenPowerAtCrankIdleWatts"
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts.Size = New System.Drawing.Size(100, 20)
+        Me.txtM5_out_AltRegenPowerAtCrankIdleWatts.TabIndex = 0
+        '
+        'txtM5_out_AltRegenPowerAtCrankTractionWatts
+        '
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts.Location = New System.Drawing.Point(8, 64)
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts.Name = "txtM5_out_AltRegenPowerAtCrankTractionWatts"
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts.Size = New System.Drawing.Size(100, 20)
+        Me.txtM5_out_AltRegenPowerAtCrankTractionWatts.TabIndex = 1
+        '
+        'lblM5_AltRegenPowerAtCrankIdleW
+        '
+        Me.lblM5_AltRegenPowerAtCrankIdleW.AutoSize = true
+        Me.lblM5_AltRegenPowerAtCrankIdleW.Location = New System.Drawing.Point(5, 5)
+        Me.lblM5_AltRegenPowerAtCrankIdleW.Name = "lblM5_AltRegenPowerAtCrankIdleW"
+        Me.lblM5_AltRegenPowerAtCrankIdleW.Size = New System.Drawing.Size(165, 13)
+        Me.lblM5_AltRegenPowerAtCrankIdleW.TabIndex = 2
+        Me.lblM5_AltRegenPowerAtCrankIdleW.Text = "Alt Regen Pwr@tCrank IdleWatts"
+        '
+        'M5_AlternatorGenerationPowerAtCrankOverrunWatts
+        '
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.AutoSize = true
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.Location = New System.Drawing.Point(8, 87)
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.Name = "M5_AlternatorGenerationPowerAtCrankOverrunWatts"
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.Size = New System.Drawing.Size(186, 13)
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.TabIndex = 5
+        Me.M5_AlternatorGenerationPowerAtCrankOverrunWatts.Text = "Alt Regen Pwr@Crank Overrun Watts"
+        '
+        'txtM5_out_AltRegenPowerAtCrankOverrunWatts
+        '
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts.Location = New System.Drawing.Point(8, 105)
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts.Name = "txtM5_out_AltRegenPowerAtCrankOverrunWatts"
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts.Size = New System.Drawing.Size(100, 20)
+        Me.txtM5_out_AltRegenPowerAtCrankOverrunWatts.TabIndex = 4
+        '
+        'lblM5_AlternatorRegenPowerAtCrankTractionWatts
+        '
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.AutoSize = true
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.Location = New System.Drawing.Point(5, 48)
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.Name = "lblM5_AlternatorRegenPowerAtCrankTractionWatts"
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.Size = New System.Drawing.Size(190, 13)
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.TabIndex = 6
+        Me.lblM5_AlternatorRegenPowerAtCrankTractionWatts.Text = "Alt Regen Pwr@tCrank Traction Watts"
         '
-        Me.pnl_M3_Displays.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
-        Me.pnl_M3_Displays.Controls.Add(Me.lblM3_TotAirConsumptionPerCycleLitres)
-        Me.pnl_M3_Displays.Controls.Add(Me.lbl_M3_AvgPowerAtCrankFromPneumatics)
-        Me.pnl_M3_Displays.Controls.Add(Me.txtM3_out_TotalAirConsumedPerCycleInLitres)
-        Me.pnl_M3_Displays.Controls.Add(Me.txtM3_out_AveragePowerAtCrankFromPneumatics)
-        Me.pnl_M3_Displays.Location = New System.Drawing.Point(379, 159)
-        Me.pnl_M3_Displays.Name = "pnl_M3_Displays"
-        Me.pnl_M3_Displays.Size = New System.Drawing.Size(200, 100)
-        Me.pnl_M3_Displays.TabIndex = 30
-        '
-        'lblM3_AveragePneumaticLoad
-        '
-        Me.lblM3_AveragePneumaticLoad.AutoSize = true
-        Me.lblM3_AveragePneumaticLoad.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        Me.lblM3_AveragePneumaticLoad.Location = New System.Drawing.Point(376, 141)
-        Me.lblM3_AveragePneumaticLoad.Name = "lblM3_AveragePneumaticLoad"
-        Me.lblM3_AveragePneumaticLoad.Size = New System.Drawing.Size(195, 13)
-        Me.lblM3_AveragePneumaticLoad.TabIndex = 31
-        Me.lblM3_AveragePneumaticLoad.Text = "M3-Avg Pneumatic Load Demand"
-        '
-        'txtM3_out_AveragePowerAtCrankFromPneumatics
+        'txtEngineDrivelinePower
         '
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Location = New System.Drawing.Point(10, 22)
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Name = "txtM3_out_AveragePowerAtCrankFromPneumatics"
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.Size = New System.Drawing.Size(100, 20)
-        Me.txtM3_out_AveragePowerAtCrankFromPneumatics.TabIndex = 0
+        Me.txtEngineDrivelinePower.Location = New System.Drawing.Point(25, 76)
+        Me.txtEngineDrivelinePower.Name = "txtEngineDrivelinePower"
+        Me.txtEngineDrivelinePower.Size = New System.Drawing.Size(100, 20)
+        Me.txtEngineDrivelinePower.TabIndex = 1
         '
-        'txtM3_out_TotalAirConsumedPerCycleInLitres
+        'txtEngineDrivelineTorque
         '
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Location = New System.Drawing.Point(10, 67)
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Name = "txtM3_out_TotalAirConsumedPerCycleInLitres"
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.Size = New System.Drawing.Size(100, 20)
-        Me.txtM3_out_TotalAirConsumedPerCycleInLitres.TabIndex = 1
+        Me.txtEngineDrivelineTorque.Location = New System.Drawing.Point(25, 120)
+        Me.txtEngineDrivelineTorque.Name = "txtEngineDrivelineTorque"
+        Me.txtEngineDrivelineTorque.Size = New System.Drawing.Size(100, 20)
+        Me.txtEngineDrivelineTorque.TabIndex = 2
         '
-        'lbl_M3_AvgPowerAtCrankFromPneumatics
+        'txtEngineMotoringPower
         '
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.AutoSize = true
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Location = New System.Drawing.Point(9, 4)
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Name = "lbl_M3_AvgPowerAtCrankFromPneumatics"
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Size = New System.Drawing.Size(182, 13)
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.TabIndex = 2
-        Me.lbl_M3_AvgPowerAtCrankFromPneumatics.Text = "Avg Power@Crank From Pneumatics"
+        Me.txtEngineMotoringPower.Location = New System.Drawing.Point(25, 165)
+        Me.txtEngineMotoringPower.Name = "txtEngineMotoringPower"
+        Me.txtEngineMotoringPower.Size = New System.Drawing.Size(100, 20)
+        Me.txtEngineMotoringPower.TabIndex = 3
         '
-        'lblM3_TotAirConsumptionPerCycleLitres
+        'txtEngineSpeed
         '
-        Me.lblM3_TotAirConsumptionPerCycleLitres.AutoSize = true
-        Me.lblM3_TotAirConsumptionPerCycleLitres.Location = New System.Drawing.Point(8, 49)
-        Me.lblM3_TotAirConsumptionPerCycleLitres.Name = "lblM3_TotAirConsumptionPerCycleLitres"
-        Me.lblM3_TotAirConsumptionPerCycleLitres.Size = New System.Drawing.Size(136, 13)
-        Me.lblM3_TotAirConsumptionPerCycleLitres.TabIndex = 3
-        Me.lblM3_TotAirConsumptionPerCycleLitres.Text = "Total Air Cosumed/Cycle(L)"
+        Me.txtEngineSpeed.Location = New System.Drawing.Point(25, 205)
+        Me.txtEngineSpeed.Name = "txtEngineSpeed"
+        Me.txtEngineSpeed.Size = New System.Drawing.Size(100, 20)
+        Me.txtEngineSpeed.TabIndex = 4
         '
-        'Panel1
+        'txtTotalCycleTimeSeconds
         '
-        Me.Panel1.Controls.Add(Me.lblM4_PowerAtCrankFromPSCompressorON)
-        Me.Panel1.Controls.Add(Me.lblM4_PowerAtCrankFromPSCompressorOFF)
-        Me.Panel1.Controls.Add(Me.lblM4_CompressorOnOffPowerDelta)
-        Me.Panel1.Controls.Add(Me.lblM4_CompressorFlowRate)
-        Me.Panel1.Controls.Add(Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON)
-        Me.Panel1.Controls.Add(Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF)
-        Me.Panel1.Controls.Add(Me.txtM4_out_CompresssorPwrOnMinusPwrOff)
-        Me.Panel1.Controls.Add(Me.txtM4_out_CompressorFlowRate)
-        Me.Panel1.Location = New System.Drawing.Point(379, 281)
-        Me.Panel1.Name = "Panel1"
-        Me.Panel1.Size = New System.Drawing.Size(200, 179)
-        Me.Panel1.TabIndex = 32
+        Me.txtTotalCycleTimeSeconds.Location = New System.Drawing.Point(25, 254)
+        Me.txtTotalCycleTimeSeconds.Name = "txtTotalCycleTimeSeconds"
+        Me.txtTotalCycleTimeSeconds.Size = New System.Drawing.Size(100, 20)
+        Me.txtTotalCycleTimeSeconds.TabIndex = 5
         '
-        'txtM4_out_CompressorFlowRate
+        'lblEngineDrivelinePower
         '
-        Me.txtM4_out_CompressorFlowRate.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM4_out_CompressorFlowRate.Location = New System.Drawing.Point(13, 28)
-        Me.txtM4_out_CompressorFlowRate.Name = "txtM4_out_CompressorFlowRate"
-        Me.txtM4_out_CompressorFlowRate.Size = New System.Drawing.Size(100, 20)
-        Me.txtM4_out_CompressorFlowRate.TabIndex = 0
+        Me.lblEngineDrivelinePower.AutoSize = true
+        Me.lblEngineDrivelinePower.Location = New System.Drawing.Point(22, 61)
+        Me.lblEngineDrivelinePower.Name = "lblEngineDrivelinePower"
+        Me.lblEngineDrivelinePower.Size = New System.Drawing.Size(120, 13)
+        Me.lblEngineDrivelinePower.TabIndex = 10
+        Me.lblEngineDrivelinePower.Text = "Engine Driveline Power "
         '
-        'txtM4_out_CompresssorPwrOnMinusPwrOff
+        'lblEngineDrivelineTorque
         '
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Location = New System.Drawing.Point(13, 69)
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Name = "txtM4_out_CompresssorPwrOnMinusPwrOff"
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.Size = New System.Drawing.Size(100, 20)
-        Me.txtM4_out_CompresssorPwrOnMinusPwrOff.TabIndex = 1
+        Me.lblEngineDrivelineTorque.AutoSize = true
+        Me.lblEngineDrivelineTorque.Location = New System.Drawing.Point(24, 103)
+        Me.lblEngineDrivelineTorque.Name = "lblEngineDrivelineTorque"
+        Me.lblEngineDrivelineTorque.Size = New System.Drawing.Size(121, 13)
+        Me.lblEngineDrivelineTorque.TabIndex = 11
+        Me.lblEngineDrivelineTorque.Text = "Engine Driveline Torque"
         '
-        'txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF
+        'lblEngineMotoringPower
         '
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Location = New System.Drawing.Point(13, 107)
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Name = "txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF"
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Size = New System.Drawing.Size(100, 20)
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.TabIndex = 2
+        Me.lblEngineMotoringPower.AutoSize = true
+        Me.lblEngineMotoringPower.Location = New System.Drawing.Point(24, 148)
+        Me.lblEngineMotoringPower.Name = "lblEngineMotoringPower"
+        Me.lblEngineMotoringPower.Size = New System.Drawing.Size(117, 13)
+        Me.lblEngineMotoringPower.TabIndex = 12
+        Me.lblEngineMotoringPower.Text = "Engine Motoring Power"
         '
-        'txtM4_out_PowerAtCrankFromPneumaticsCompressorON
+        'lblEngineSpeed
         '
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0,Byte),Integer), CType(CType(192,Byte),Integer), CType(CType(0,Byte),Integer))
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Location = New System.Drawing.Point(13, 148)
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Name = "txtM4_out_PowerAtCrankFromPneumaticsCompressorON"
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Size = New System.Drawing.Size(100, 20)
-        Me.txtM4_out_PowerAtCrankFromPneumaticsCompressorON.TabIndex = 3
+        Me.lblEngineSpeed.AutoSize = true
+        Me.lblEngineSpeed.Location = New System.Drawing.Point(23, 192)
+        Me.lblEngineSpeed.Name = "lblEngineSpeed"
+        Me.lblEngineSpeed.Size = New System.Drawing.Size(107, 13)
+        Me.lblEngineSpeed.TabIndex = 13
+        Me.lblEngineSpeed.Text = "Engine Speed (RPM)"
         '
-        'lblM4_CompressorFlowRate
+        'lblTotalCycleTimeSeconds
         '
-        Me.lblM4_CompressorFlowRate.AutoSize = true
-        Me.lblM4_CompressorFlowRate.Location = New System.Drawing.Point(13, 11)
-        Me.lblM4_CompressorFlowRate.Name = "lblM4_CompressorFlowRate"
-        Me.lblM4_CompressorFlowRate.Size = New System.Drawing.Size(143, 13)
-        Me.lblM4_CompressorFlowRate.TabIndex = 4
-        Me.lblM4_CompressorFlowRate.Text = "Compressor Flow Rate L/min"
+        Me.lblTotalCycleTimeSeconds.AutoSize = true
+        Me.lblTotalCycleTimeSeconds.Location = New System.Drawing.Point(25, 237)
+        Me.lblTotalCycleTimeSeconds.Name = "lblTotalCycleTimeSeconds"
+        Me.lblTotalCycleTimeSeconds.Size = New System.Drawing.Size(134, 13)
+        Me.lblTotalCycleTimeSeconds.TabIndex = 14
+        Me.lblTotalCycleTimeSeconds.Text = "Total Cycle Time Seconds "
         '
-        'lblM4_CompressorOnOffPowerDelta
+        'chkClutchEngaged
         '
-        Me.lblM4_CompressorOnOffPowerDelta.AutoSize = true
-        Me.lblM4_CompressorOnOffPowerDelta.Location = New System.Drawing.Point(13, 54)
-        Me.lblM4_CompressorOnOffPowerDelta.Name = "lblM4_CompressorOnOffPowerDelta"
-        Me.lblM4_CompressorOnOffPowerDelta.Size = New System.Drawing.Size(162, 13)
-        Me.lblM4_CompressorOnOffPowerDelta.TabIndex = 5
-        Me.lblM4_CompressorOnOffPowerDelta.Text = "Compressor PwrOn minus PwrOff"
+        Me.chkClutchEngaged.AutoSize = true
+        Me.chkClutchEngaged.Location = New System.Drawing.Point(25, 20)
+        Me.chkClutchEngaged.Name = "chkClutchEngaged"
+        Me.chkClutchEngaged.Size = New System.Drawing.Size(102, 17)
+        Me.chkClutchEngaged.TabIndex = 20
+        Me.chkClutchEngaged.Text = "Clutch Engaged"
+        Me.chkClutchEngaged.UseVisualStyleBackColor = true
         '
-        'lblM4_PowerAtCrankFromPSCompressorOFF
+        'btnStart
         '
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.AutoSize = true
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Location = New System.Drawing.Point(13, 91)
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Name = "lblM4_PowerAtCrankFromPSCompressorOFF"
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Size = New System.Drawing.Size(185, 13)
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.TabIndex = 6
-        Me.lblM4_PowerAtCrankFromPSCompressorOFF.Text = "Pwr@Crank From PS CompressorOFF"
+        Me.btnStart.Location = New System.Drawing.Point(25, 392)
+        Me.btnStart.Name = "btnStart"
+        Me.btnStart.Size = New System.Drawing.Size(102, 23)
+        Me.btnStart.TabIndex = 1
+        Me.btnStart.Text = "Start Processing"
+        Me.btnStart.UseVisualStyleBackColor = true
         '
-        'lblM4_PowerAtCrankFromPSCompressorON
+        'btnFinish
         '
-        Me.lblM4_PowerAtCrankFromPSCompressorON.AutoSize = true
-        Me.lblM4_PowerAtCrankFromPSCompressorON.Location = New System.Drawing.Point(13, 133)
-        Me.lblM4_PowerAtCrankFromPSCompressorON.Name = "lblM4_PowerAtCrankFromPSCompressorON"
-        Me.lblM4_PowerAtCrankFromPSCompressorON.Size = New System.Drawing.Size(181, 13)
-        Me.lblM4_PowerAtCrankFromPSCompressorON.TabIndex = 7
-        Me.lblM4_PowerAtCrankFromPSCompressorON.Text = "Pwr@Crank From PS CompressorON"
+        Me.btnFinish.Location = New System.Drawing.Point(25, 448)
+        Me.btnFinish.Name = "btnFinish"
+        Me.btnFinish.Size = New System.Drawing.Size(100, 23)
+        Me.btnFinish.TabIndex = 4
+        Me.btnFinish.Text = "Stop Processing"
+        Me.btnFinish.UseVisualStyleBackColor = true
         '
-        'lblM4_AirCompressor
+        'PictureBox1
         '
-        Me.lblM4_AirCompressor.AutoSize = true
-        Me.lblM4_AirCompressor.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte))
-        Me.lblM4_AirCompressor.Location = New System.Drawing.Point(379, 265)
-        Me.lblM4_AirCompressor.Name = "lblM4_AirCompressor"
-        Me.lblM4_AirCompressor.Size = New System.Drawing.Size(112, 13)
-        Me.lblM4_AirCompressor.TabIndex = 33
-        Me.lblM4_AirCompressor.Text = "M4-Air Compressor"
+        Me.PictureBox1.Location = New System.Drawing.Point(28, 280)
+        Me.PictureBox1.Name = "PictureBox1"
+        Me.PictureBox1.Size = New System.Drawing.Size(100, 94)
+        Me.PictureBox1.TabIndex = 34
+        Me.PictureBox1.TabStop = false
         '
         'Dashboard
         '
         Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
         Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
         Me.AutoValidate = System.Windows.Forms.AutoValidate.EnableAllowFocusChange
-        Me.ClientSize = New System.Drawing.Size(945, 712)
+        Me.ClientSize = New System.Drawing.Size(945, 742)
         Me.Controls.Add(Me.pnlMain)
         Me.Name = "Dashboard"
         Me.Text = "Dashboard"
@@ -1886,6 +1984,10 @@ Partial Class Dashboard
         Me.tabHVACConfig.PerformLayout
         Me.tabPlayground.ResumeLayout(false)
         Me.tabPlayground.PerformLayout
+        Me.Panel1.ResumeLayout(false)
+        Me.Panel1.PerformLayout
+        Me.pnl_M3_Displays.ResumeLayout(false)
+        Me.pnl_M3_Displays.PerformLayout
         Me.pnl_M2_Displays.ResumeLayout(false)
         Me.pnl_M2_Displays.PerformLayout
         Me.pnl_M1_Displays.ResumeLayout(false)
@@ -1896,19 +1998,16 @@ Partial Class Dashboard
         Me.pnl_M0_Displays.PerformLayout
         Me.resultCardContextMenu.ResumeLayout(false)
         CType(Me.ErrorProvider,System.ComponentModel.ISupportInitialize).EndInit
-        Me.pnl_M3_Displays.ResumeLayout(false)
-        Me.pnl_M3_Displays.PerformLayout
-        Me.Panel1.ResumeLayout(false)
-        Me.Panel1.PerformLayout
+        Me.Panel3.ResumeLayout(false)
+        Me.Panel3.PerformLayout
+        CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).EndInit
         Me.ResumeLayout(false)
 
 End Sub
     Friend WithEvents pnlMain As System.Windows.Forms.Panel
     Friend WithEvents btnCancel As System.Windows.Forms.Button
-    Friend WithEvents btnFinish As System.Windows.Forms.Button
     Friend WithEvents btnForward As System.Windows.Forms.Button
     Friend WithEvents btnBack As System.Windows.Forms.Button
-    Friend WithEvents btnStart As System.Windows.Forms.Button
     Friend WithEvents resultCardContextMenu As System.Windows.Forms.ContextMenuStrip
     Friend WithEvents DeleteToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
     Friend WithEvents ErrorProvider As System.Windows.Forms.ErrorProvider
@@ -2001,17 +2100,6 @@ End Sub
     Friend WithEvents txtHVACElectricalLoadPowerWatts As System.Windows.Forms.TextBox
     Friend WithEvents lblHVACElectricalLoadPowerWatts As System.Windows.Forms.Label
     Friend WithEvents lblHVACTitle As System.Windows.Forms.Label
-    Friend WithEvents lblTotalCycleTimeSeconds As System.Windows.Forms.Label
-    Friend WithEvents lblEngineSpeed As System.Windows.Forms.Label
-    Friend WithEvents lblEngineMotoringPower As System.Windows.Forms.Label
-    Friend WithEvents lblEngineDrivelineTorque As System.Windows.Forms.Label
-    Friend WithEvents lblEngineDrivelinePower As System.Windows.Forms.Label
-    Friend WithEvents txtTotalCycleTimeSeconds As System.Windows.Forms.TextBox
-    Friend WithEvents txtEngineSpeed As System.Windows.Forms.TextBox
-    Friend WithEvents txtEngineMotoringPower As System.Windows.Forms.TextBox
-    Friend WithEvents txtEngineDrivelineTorque As System.Windows.Forms.TextBox
-    Friend WithEvents txtEngineDrivelinePower As System.Windows.Forms.TextBox
-    Friend WithEvents chkClutchEngaged As System.Windows.Forms.CheckBox
     Friend WithEvents lblM0Outputs As System.Windows.Forms.Label
     Friend WithEvents pnl_M0_Displays As System.Windows.Forms.Panel
     Friend WithEvents lblAlternatorsEfficiency As System.Windows.Forms.Label
@@ -2065,4 +2153,27 @@ End Sub
     Friend WithEvents txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF As System.Windows.Forms.TextBox
     Friend WithEvents txtM4_out_CompresssorPwrOnMinusPwrOff As System.Windows.Forms.TextBox
     Friend WithEvents txtM4_out_CompressorFlowRate As System.Windows.Forms.TextBox
+    Friend WithEvents lblM5_SmartAltSetGeneration As System.Windows.Forms.Label
+    Friend WithEvents Panel3 As System.Windows.Forms.Panel
+    Friend WithEvents M5_AlternatorGenerationPowerAtCrankOverrunWatts As System.Windows.Forms.Label
+    Friend WithEvents txtM5_out_AltRegenPowerAtCrankOverrunWatts As System.Windows.Forms.TextBox
+    Friend WithEvents lblM5_AltRegenPowerAtCrankIdleW As System.Windows.Forms.Label
+    Friend WithEvents txtM5_out_AltRegenPowerAtCrankTractionWatts As System.Windows.Forms.TextBox
+    Friend WithEvents txtM5_out_AltRegenPowerAtCrankIdleWatts As System.Windows.Forms.TextBox
+    Friend WithEvents lblM5_AlternatorRegenPowerAtCrankTractionWatts As System.Windows.Forms.Label
+    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
+    Friend WithEvents btnFinish As System.Windows.Forms.Button
+    Friend WithEvents btnStart As System.Windows.Forms.Button
+    Friend WithEvents chkClutchEngaged As System.Windows.Forms.CheckBox
+    Friend WithEvents lblTotalCycleTimeSeconds As System.Windows.Forms.Label
+    Friend WithEvents lblEngineSpeed As System.Windows.Forms.Label
+    Friend WithEvents lblEngineMotoringPower As System.Windows.Forms.Label
+    Friend WithEvents lblEngineDrivelineTorque As System.Windows.Forms.Label
+    Friend WithEvents lblEngineDrivelinePower As System.Windows.Forms.Label
+    Friend WithEvents txtTotalCycleTimeSeconds As System.Windows.Forms.TextBox
+    Friend WithEvents txtEngineSpeed As System.Windows.Forms.TextBox
+    Friend WithEvents txtEngineMotoringPower As System.Windows.Forms.TextBox
+    Friend WithEvents txtEngineDrivelineTorque As System.Windows.Forms.TextBox
+    Friend WithEvents txtEngineDrivelinePower As System.Windows.Forms.TextBox
+
 End Class
diff --git a/AuxillaryTestHarness/Dashboard.vb b/AuxillaryTestHarness/Dashboard.vb
index 0453728a75..37d5268433 100644
--- a/AuxillaryTestHarness/Dashboard.vb
+++ b/AuxillaryTestHarness/Dashboard.vb
@@ -641,8 +641,7 @@ Private Sub Dashboard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
   'Finally Initialise Environment.
   auxEnvironment.Initialise()
-
-   Timer1.Start()
+  SetProcessingStatus()
 
 End Sub
 
@@ -836,8 +835,11 @@ End Sub
 #Region "Button Handlers"
 
 Private Sub btnStart_Click( sender As Object,  e As EventArgs) Handles btnStart.Click 
-        Validate_Pneumatics()
-        Validate_Electrics()
+    auxEnvironment.Initialise()
+    processing=true
+    SetProcessingStatus
+
+Timer1.Start
 
 End Sub
 
@@ -873,10 +875,42 @@ Private sub RefreshDisplays()
      txtM3_out_TotalAirConsumedPerCycleInLitres.Text=auxEnvironment.M3.TotalAirConsumedPerCycle
 
      'M4
-     txtM4_out_CompressorFlowRate.Text = auxEnvironment.M4.GetAveragePowerDemandPerCompressorUnitFlowRate
-     'txtM4_out_CompresssorPwrOnMinusPwrOff.Text=auxEnvironment.M4.GetPowerDifference
-     txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Text= auxEnvironment.M4.GetPowerCompressorOff
-     'txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Text= auxEnvironment.M4.GetPowerCompressorOn
+      txtM4_out_CompressorFlowRate.Text = auxEnvironment.M4.GetFlowRate
+      txtM4_out_CompresssorPwrOnMinusPwrOff.Text=auxEnvironment.M4.GetPowerDifference
+      txtM4_out_PowerAtCrankFromPneumaticsCompressorOFF.Text= auxEnvironment.M4.GetPowerCompressorOff
+      txtM4_out_PowerAtCrankFromPneumaticsCompressorON.Text= auxEnvironment.M4.GetPowerCompressorOn
+
+      'M5
+      txtM5_out_AltRegenPowerAtCrankIdleWatts.text= auxEnvironment.m5.AlternatorsGenerationPowerAtCrankIdleWatts
+      txtM5_out_AltRegenPowerAtCrankOverrunWatts.text= auxEnvironment.m5.AlternatorsGenerationPowerAtCrankOverrunWatts
+      txtM5_out_AltRegenPowerAtCrankTractionWatts.text= auxEnvironment.m5.AlternatorsGenerationPowerAtCrankTractionOnWatts
+
+ 
+
+End Sub
+
+
+
+Private processing As Boolean = False
+
+
+Private sub SetProcessingStatus()
+
+Dim thisExe As System.Reflection.Assembly 
+Dim file as System.IO.Stream 
+thisExe = System.Reflection.Assembly.GetExecutingAssembly()
+
+If processing then
+
+file  = thisExe.GetManifestResourceStream("AuxillaryTestHarness.greenLight.jpg")
+
+Else
+
+file  = thisExe.GetManifestResourceStream("AuxillaryTestHarness.amberLight.jpg")
+
+End If
+
+me.pictureBox1.Image = Image.FromStream(file)
 
 
 End Sub
@@ -885,8 +919,12 @@ End Sub
 
 Private Sub RefreshDisplayValues_Timed( sender As Object,  e As EventArgs) Handles Timer1.Tick
 
+  
+  SetProcessingStatus()
+
   RefreshDisplays()
 
+
 End Sub
 
 
@@ -913,4 +951,16 @@ End Sub
     End Function
 
 
+Private Sub btnFinish_Click( sender As Object,  e As EventArgs) Handles btnFinish.Click
+
+
+    processing=False
+    SetProcessingStatus
+
+
+ Timer1.Stop
+
+End Sub
+
+
 End Class
\ No newline at end of file
diff --git a/AuxillaryTestHarness/Images/amberLight.jpg b/AuxillaryTestHarness/Images/amberLight.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..3905a04eeb3f672c6d5a41075ddcedc6691ad941
GIT binary patch
literal 2305
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

literal 0
HcmV?d00001

diff --git a/AuxillaryTestHarness/Images/greenLight.jpg b/AuxillaryTestHarness/Images/greenLight.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..0bfe00613eb7a55b2e4ad42cb3b80e66dba99b44
GIT binary patch
literal 2120
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
SZfmElr~nRyRyR=m@qYvN&86A^

literal 0
HcmV?d00001

diff --git a/AuxillaryTestHarness/Resource1.Designer.vb b/AuxillaryTestHarness/Resource1.Designer.vb
new file mode 100644
index 0000000000..4b372d02d2
--- /dev/null
+++ b/AuxillaryTestHarness/Resource1.Designer.vb
@@ -0,0 +1,67 @@
+'------------------------------------------------------------------------------
+' <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()>  _
+    Friend Class Resource1
+        
+        Private Shared resourceMan As Global.System.Resources.ResourceManager
+        
+        Private Shared resourceCulture As Global.System.Globalization.CultureInfo
+        
+        <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")>  _
+        Friend Sub New()
+            MyBase.New
+        End Sub
+        
+        '''<summary>
+        '''  Returns the cached ResourceManager instance used by this class.
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend Shared 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("AuxillaryTestHarness.Resource1", GetType(Resource1).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 Shared Property Culture() As Global.System.Globalization.CultureInfo
+            Get
+                Return resourceCulture
+            End Get
+            Set
+                resourceCulture = value
+            End Set
+        End Property
+    End Class
+End Namespace
diff --git a/AuxillaryTestHarness/Resource1.resx b/AuxillaryTestHarness/Resource1.resx
new file mode 100644
index 0000000000..26a50bdc67
--- /dev/null
+++ b/AuxillaryTestHarness/Resource1.resx
@@ -0,0 +1,110 @@
+<?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">this is my long string</data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        [base64 mime encoded serialized .NET Framework object]
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        [base64 mime encoded string representing a byte array form of the .NET Framework object]
+    </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="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/AuxillaryTestHarness/testAlternatorMap.csv b/AuxillaryTestHarness/testAlternatorMap.csv
new file mode 100644
index 0000000000..3968d6970a
--- /dev/null
+++ b/AuxillaryTestHarness/testAlternatorMap.csv
@@ -0,0 +1,36 @@
+Amp,RPM,Efficiency
+10,1500,0.615
+27,1500,0.70
+53,1500,0.1947
+63,1500,0.00
+68,1500,0.00
+125,1500,0.00
+136,1500,0.00
+10,2000,0.62
+27,2000,0.70
+53,2000,0.30
+63,2000,0.1462
+68,2000,0.692
+125,2000,0.00
+136,2000,0.00
+10,4000,0.64
+27,4000,0.6721
+53,4000,0.7211
+63,4000,0.7400
+68,4000,0.7352
+125,4000,0.6800
+136,4000,0.6694
+10,6000,0.5300
+27,6000,0.5798
+53,6000,0.6560
+63,6000,0.6853
+68,6000,0.7000
+125,6000,0.6329
+136,6000,0.6200
+10,7000,0.4750
+27,7000,0.5337
+53,7000,0.6235
+63,7000,0.6580
+68,7000,0.6824
+125,7000,0.6094
+136,7000,0.5953
diff --git a/AuxillaryTestHarness/testCompressorMap.csv b/AuxillaryTestHarness/testCompressorMap.csv
new file mode 100644
index 0000000000..cbad21704e
--- /dev/null
+++ b/AuxillaryTestHarness/testCompressorMap.csv
@@ -0,0 +1,8 @@
+rpm,flowRate [l/min],power [on] [kW],power [off] [kW]
+1500,200,2,1
+2000,400,4,2
+3000,600,6,3
+4000,800,8,4
+5000,1000,10,5
+6000,1200,12,6
+7000,1400,14,7
\ No newline at end of file
diff --git a/AuxillaryTestHarness/testPneumaticActuationsMap_GOODMAP.csv b/AuxillaryTestHarness/testPneumaticActuationsMap_GOODMAP.csv
new file mode 100644
index 0000000000..8e2ae53d6b
--- /dev/null
+++ b/AuxillaryTestHarness/testPneumaticActuationsMap_GOODMAP.csv
@@ -0,0 +1,16 @@
+ConsumerName, CycleName, Actuations
+Brakes,Heavy urban,191
+Brakes,Urban,153
+Brakes,Suburban,49
+Brakes,Interurban,190
+Brakes,Coach,27
+Park brake + 2 doors,Heavy urban,82
+Park brake + 2 doors,Urban,75
+Park brake + 2 doors,Suburban,25
+Park brake + 2 doors,Interurban,9
+Park brake + 2 doors,Coach,6
+Kneeling,Heavy urban,27
+Kneeling,Urban,25
+Kneeling,Suburban,6
+Kneeling,Interurban,0
+Kneeling,Coach,0
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb b/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
index df739c560d..ba43ba7b7b 100644
--- a/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
+++ b/VECTOAux/VectoAuxiliaries/AuxillaryEnvironment.vb
@@ -90,7 +90,7 @@ M3 = New M3_AveragePneumaticLoadDemand(PneumaticUserInputsConfig,
          VectoInputs.CycleDurationMinutes)
 
 
-M4 = New M4_AirCompressor(compressorMap,Signals)
+M4 = New M4_AirCompressor(compressorMap,PneumaticUserInputsConfig.CompressorGearRatio,PneumaticUserInputsConfig.CompressorGearEfficiency,Signals)
 
 
 M5 = New M5__SmartAlternatorSetGeneration( M05, VectoInputs.PowerNetVoltage,ElectricalUserInputsConfig.AlternatorGearEfficiency)
@@ -128,7 +128,7 @@ Private Sub setDefaults()
                                                                      .ResultCardOverrun= New ResultCard(New List(Of SmartResult)),
                                                                      .ResultCardTraction=New  ResultCard(New List(Of SmartResult)),
                                                                      .SmartElectrical=True,
-                                                                     .AlternatorMap="C:\Users\tb28\Source\Workspaces\VECVECTOAux\VectoAuxiliariesTests\TestFiles\testAlternatorMap.csv"
+                                                                     .AlternatorMap="testAlternatorMap.csv"
                                                                      }
 
  HvacUserInputsConfig = New HVACUserInputsConfig( New HVACSteadyStateModel(100,100,100))
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb b/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb
index ae26e09711..8a1fa0c097 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb
@@ -2,9 +2,9 @@
 
 
 
-function AlternatorsGenerationPowerAtCrankIdleWatts(rpm As Integer) As Single
-function  AlternatorsGenerationPowerAtCrankTractionOnWatts(rpm As Integer) As Single
-function  AlternatorsGenerationPowerAtCrankOverrunWatts(rpm As Integer) As Single 
+function AlternatorsGenerationPowerAtCrankIdleWatts() As Single
+function  AlternatorsGenerationPowerAtCrankTractionOnWatts() As Single
+function  AlternatorsGenerationPowerAtCrankOverrunWatts() As Single 
 
 
 
diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb b/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
index ca9bf7a254..692b3e6a7c 100644
--- a/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
+++ b/VECTOAux/VectoAuxiliaries/Electrics/M5__SmartAlternatorSetGeneration.vb
@@ -10,6 +10,7 @@ Private _alternatorGearEfficiency As single
 
 
 
+
     Public Sub new ( m05 As M0_5_SmartAlternatorSetEfficiency, ByVal powernetVoltage As single, alternatorGearEfficiency As single)
 
     'sanity check
@@ -22,21 +23,22 @@ Private _alternatorGearEfficiency As single
     _powerNetVoltage=powernetVoltage
     _alternatorGearEfficiency = alternatorGearEfficiency
 
+
     End Sub
 
-    Public Function AlternatorsGenerationPowerAtCrankIdleWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankIdleWatts
+    Public Function AlternatorsGenerationPowerAtCrankIdleWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankIdleWatts
 
       Return (_m05.SmartIdleCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyIdleResultCard() * _alternatorGearEfficiency)
 
     End Function
 
-    Public Function AlternatorsGenerationPowerAtCrankOverrunWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankOverrunWatts
+    Public Function AlternatorsGenerationPowerAtCrankOverrunWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankOverrunWatts
 
           Return (_m05.SmartOverrunCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyOverrunResultCard() * _alternatorGearEfficiency)
 
     End Function
 
-    Public Function AlternatorsGenerationPowerAtCrankTractionOnWatts(rpm As Integer) As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankTractionOnWatts
+    Public Function AlternatorsGenerationPowerAtCrankTractionOnWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankTractionOnWatts
 
               Return (_m05.SmartTractionCurrent() * _powerNetVoltage) / ( _m05.AlternatorsEfficiencyTractionOnResultCard() * _alternatorGearEfficiency)
 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
index f51478beb7..cbca649590 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/CompressorMap.vb
@@ -31,7 +31,6 @@ Namespace Pneumatics
         Public Function AveragePowerDemandPerCompressorUnitFlowRate() As Single Implements ICompressorMap.GetAveragePowerDemandPerCompressorUnitFlowRate
 
 
-
             Return _averagePowerDemandPerCompressorUnitFlowRate
 
 
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
index b8bcd3e58f..8c29e35bf9 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/M4_AirCompressor.vb
@@ -4,10 +4,10 @@ Namespace Pneumatics
     Public Class M4_AirCompressor
         Implements IM4_AirCompressor
 
-        Private Const MinRatio As Single = 1.25
-        Private Const MaxRatio As Single = 5.5
-        Private Const MinEff As Single = 0.25
-        Private Const MaxEff As Single = 0.95
+        Private Const MinRatio As Single = 1
+        Private Const MaxRatio As Single = 10
+        Private Const MinEff As Single = 0
+        Private Const MaxEff As Single = 1
 
         Private _pulleyGearRatio As Single
         Private _pulleyGearEfficiency As Single
@@ -57,10 +57,10 @@ Namespace Pneumatics
         ''' </summary>
         ''' <param name="map">map of compressor values against compressor rpm</param>
         ''' <remarks></remarks>
-        Public Sub New(ByVal map As ICompressorMap, signals As ISignals)
-            _map = map
-            _signals = signals
-        End Sub
+        'Public Sub New(ByVal map As ICompressorMap, signals As ISignals)
+        '    _map = map
+        '    _signals = signals
+        'End Sub
 
         ''' <summary>
         ''' Creates a new instance of the AirCompressor Class
@@ -69,7 +69,7 @@ Namespace Pneumatics
         ''' <param name="pulleyGearRatio">Ratio of Pulley/Gear</param>
         ''' <param name="pulleyGearEfficiency">Efficiency of Pulley/Gear</param>
         ''' <remarks></remarks>
-        Public Sub New(ByVal map As ICompressorMap, ByVal pulleyGearRatio As Single, ByVal pulleyGearEfficiency As Single, signals As ISignals)
+        Public Sub New(ByVal map As ICompressorMap, byref pulleyGearRatio As Single, byref pulleyGearEfficiency As Single, signals As ISignals)
 
             _map = map
             _pulleyGearRatio = pulleyGearRatio
diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb
index 9850e818e1..477565cd56 100644
--- a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb
+++ b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb
@@ -39,12 +39,12 @@ End Sub
 Public sub SetPropertiesToDefaults()
 
 
-            ActuationsMap="C:\Users\tb28\Source\Workspaces\VECVECTOAux\VectoAuxiliariesTests\TestFiles\testPneumaticActuationsMap_GOODMAP.csv"
+            ActuationsMap="testPneumaticActuationsMap_GOODMAP.csv"
             AdBlueDosing="Pneumatic"
             AirSuspensionControl="Electrically"
             CompressorGearEfficiency=0.8
-            CompressorGearRatio=0.6
-            CompressorMap="C:\Users\tb28\Source\Workspaces\VECVECTOAux\VectoAuxiliariesTests\TestFiles\testCompressorMap.csv"
+            CompressorGearRatio=1.0
+            CompressorMap="testCompressorMap.csv"
             CompressorType=""
             Doors="Pneumatic"
             KneelingHeightMillimeters=80
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/testCompressorMap.csv b/VECTOAux/VectoAuxiliariesTests/TestFiles/testCompressorMap.csv
index d65941e1ba..cbad21704e 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/testCompressorMap.csv
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/testCompressorMap.csv
@@ -1,6 +1,8 @@
 rpm,flowRate [l/min],power [on] [kW],power [off] [kW]
-100,200,2,1
-200,400,4,2
-300,600,6,3
-400,800,8,4
-500,1000,10,5
+1500,200,2,1
+2000,400,4,2
+3000,600,6,3
+4000,800,8,4
+5000,1000,10,5
+6000,1200,12,6
+7000,1400,14,7
\ No newline at end of file
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
index cdb25d8cde..ef81cf56f6 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AirCompressorTests.vb
@@ -9,13 +9,13 @@ Namespace UnitTests
     <TestFixture()>
     Public Class M4_AirCompressorTests
 #Region "Test Constants"
-        Private Const GoodEfficiency As Single = 1
-        Private Const TooLowEfficiency As Single = 0.1
-        Private Const TooHighEfficiency As Single = 1.0
+        Private Const GoodEfficiency As Single = 0.7
+        Private Const TooLowEfficiency As Single = -1
+        Private Const TooHighEfficiency As Single = 1.1
 
         Private Const GoodRatio As Single = 1
-        Private Const TooLowRatio As Single = 1.0
-        Private Const TooHighRatio As Single = 6    
+        Private Const TooLowRatio As Single = -1
+        Private Const TooHighRatio As Single = 12
 
 #End Region
 
@@ -52,7 +52,7 @@ End Sub
         Public Sub CreateNewJustPathTest()
             Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
             _signals.EngineSpeed=100
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,2,0.8,_signals)
             Assert.IsNotNull(target)
         End Sub
 
@@ -68,7 +68,7 @@ End Sub
         Public Sub InitialiseTest()
             Dim map As ICompressorMap = GetNonFailingCompressorMapMock()
             _signals.EngineSpeed=100
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,2,0.8,_signals)
             Assert.IsTrue(target.Initialise())
         End Sub
 
@@ -76,7 +76,7 @@ End Sub
         Public Sub InitialiseInvalidMapTest()
             Dim map As ICompressorMap = GetFailingCompressorMapMock()
             _signals.EngineSpeed=100
-            Dim target As M4_AirCompressor = New M4_AirCompressor(map,_signals)
+            Dim target As M4_AirCompressor = New M4_AirCompressor(map,2,0.8,_signals)
             target.Initialise()
         End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
index f92ebc0800..6f55124ff1 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/CompressorMapTests.vb
@@ -97,21 +97,21 @@ Namespace UnitTests
         <Test()>
         Public Sub GetFlowRateKeyPassedTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 200
-            Dim value As Single = target.GetFlowRate(100)
+            Dim expected As Single = 400
+            Dim value As Single = target.GetFlowRate(2000)
             Assert.AreEqual(expected, value)
         End Sub
 
         <Test()>
         Public Sub GetFlowRateInterpolaitionTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 300
-            Dim value As Single = target.GetFlowRate(150)
+            Dim expected As Single = 500
+            Dim value As Single = target.GetFlowRate(2500)
             Assert.AreEqual(expected, value)
         End Sub
 
         <TestCase(50)> _
-        <TestCase(550)> _
+        <TestCase(8000)> _
         <ExpectedException("System.ArgumentOutOfRangeException")>
         Public Sub GetFlowRateRpmOutOfRangeThrowExceptionTest(ByVal rpm As Integer)
             Dim target As CompressorMap = GetInitialiseMap()
@@ -122,16 +122,16 @@ Namespace UnitTests
         <Test()>
         Public Sub GetPowerCompressorOnKeyPassedTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 2
-            Dim value As Single = target.GetPowerCompressorOn(100)
+            Dim expected As Single = 4
+            Dim value As Single = target.GetPowerCompressorOn(2000)
             Assert.AreEqual(expected, value)
         End Sub
 
         <Test()>
         Public Sub GetPowerCompressorOnInterpolaitionTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 3
-            Dim value As Single = target.GetPowerCompressorOn(150)
+            Dim expected As Single = 5
+            Dim value As Single = target.GetPowerCompressorOn(2500)
             Assert.AreEqual(expected, value)
         End Sub
 
@@ -147,16 +147,16 @@ Namespace UnitTests
         <Test()>
         Public Sub GetPowerCompressorOffKeyPassedTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 1
-            Dim value As Single = target.GetPowerCompressorOff(100)
+            Dim expected As Single = 2
+            Dim value As Single = target.GetPowerCompressorOff(2000)
             Assert.AreEqual(expected, value)
         End Sub
 
         <Test()>
         Public Sub GetPowerCompressorOffInterpolaitionTest()
             Dim target As CompressorMap = GetInitialiseMap()
-            Dim expected As Single = 1.5
-            Dim value As Single = target.GetPowerCompressorOff(150)
+            Dim expected As Single = 2.5
+            Dim value As Single = target.GetPowerCompressorOff(2500)
             Assert.AreEqual(expected, value)
         End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
index d717859ba2..61096f5764 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M5_SmartAlternatorSetGenerationTests.vb
@@ -66,7 +66,7 @@ Public Sub  PowerAtCrankIdleWatts()
  Initialise()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
  Dim expected As Single =1642.96362
- Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankIdleWatts(_rpm)
+ Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankIdleWatts()
 
  Assert.AreEqual( expected,  actual)
 
@@ -78,7 +78,7 @@ Public Sub  PowerAtCrankTractionWatts()
  Initialise()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
  Dim expected As Single =1642.96362
- Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankTractionOnWatts(_rpm)
+ Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankTractionOnWatts()
 
  Assert.AreEqual( expected, actual)
 
@@ -91,7 +91,7 @@ Public Sub  PowerAtCrankOverrunWatts()
  _target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
  Dim expected As Single =1642.96362
 
- Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankOverrunWatts(_rpm)
+ Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankOverrunWatts()
 
  Assert.AreEqual( expected,actual)
 
-- 
GitLab