From 4588849385919838760b7629f2bee3d2236b41ad Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 9 Jan 2020 14:23:43 +0100
Subject: [PATCH] refactoring: replacing high/low ventilation rate with single
 ventilation rate - set in run-data accordingly. consequently ventilation
 power, volume exchange renaming data adapter for primary bus introducing HVAC
 config-id

---
 .../IntegrationTests/AuxDemandTest.vb         |  3 +-
 .../UnitTests/SSMTOOLTests.vb                 | 32 +++----
 .../VectoAuxiliariesTests/UnitTests/Utils.vb  |  7 +-
 .../BusHVACSystemConfiguration.cs             | 15 +++
 .../VectoCommon/BusAuxiliaries/ISSMInputs.cs  | 20 ++--
 .../VectoCore/Configuration/Constants.cs      |  3 -
 .../InputData/FileIO/JSON/SSMInputData.cs     | 14 +--
 .../DeclarationDataAdapterPrimaryBus.cs       | 91 +++++++++++++++++++
 .../DeclarationDataAdapterTruck.cs            | 54 +----------
 .../DeclarationModeBusVectoRunDataFactory.cs  |  4 +-
 .../DeclarationVTPModeVectoRunDataFactory.cs  |  2 +-
 .../EngineeringModeVectoRunDataFactory.cs     |  2 +-
 .../Models/BusAuxiliaries/AuxiliaryConfig.cs  |  9 +-
 .../Impl/HVAC/SSMCalculate.cs                 | 42 +++------
 .../DownstreamModules/Impl/HVAC/SSMInputs.cs  | 58 ++++++------
 .../DownstreamModules/Impl/HVAC/SSMTOOL.cs    |  2 +-
 .../Models/Declaration/DeclarationData.cs     | 33 ++++---
 .../Simulation/Impl/PowertrainBuilder.cs      |  2 +-
 .../Simulation/Impl/SimulatorFactory.cs       |  2 +-
 .../OutputData/FileIO/BusAuxWriter.cs         | 14 +--
 .../Declaration/VAUXBus/SP-AxleFactor.csv     |  9 ++
 .../VectoCore/Utils/ProviderExtensions.cs     |  2 +-
 VectoCore/VectoCore/VectoCore.csproj          | 24 ++---
 .../Integration/CoachAdvancedAuxPowertrain.cs |  4 +-
 24 files changed, 250 insertions(+), 198 deletions(-)
 create mode 100644 VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
 create mode 100644 VectoCore/VectoCore/Resources/Declaration/VAUXBus/SP-AxleFactor.csv

diff --git a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
index fce6fc5f8a..26c09444f8 100644
--- a/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
+++ b/VECTOAux/VectoAuxiliariesTests/IntegrationTests/AuxDemandTest.vb
@@ -41,7 +41,7 @@ Namespace IntegrationTests
             aux.Signals.EngineIdleSpeed = 560.RPMtoRad()
 
             dim auxConfig = BusAuxiliaryInputData.ReadBusAuxiliaries(auxFilePath, Utils.GetDefaultVehicleData(vehicleWeight.SI(Of Kilogram)))
-            CType(auxConfig, AuxiliaryConfig).Cycle = "Coach"
+            
             aux.Initialise(auxConfig, FuelData.Diesel) ', Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
 
             aux.Signals.ClutchEngaged = True
@@ -86,7 +86,6 @@ Namespace IntegrationTests
             aux.Signals.EngineIdleSpeed = 560.RPMtoRad()
 
             Dim auxCfg = BusAuxiliaryInputData.ReadBusAuxiliaries(auxFilePath, Utils.GetDefaultVehicleData(12000.SI(Of Kilogram)()))
-            CType(auxCfg, AuxiliaryConfig).Cycle = "Coach"
             CType(auxCfg, AuxiliaryConfig).FuelMap = fuelMap
 
             CType(aux, AdvancedAuxiliaries).Initialise(auxCfg, FuelData.Diesel) ', Path.GetDirectoryName(Path.GetFullPath(auxFilePath)) + "\")
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
index 3d6dcd3592..eb092b429b 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
@@ -71,7 +71,7 @@ Namespace UnitTests
         <TestCase("AuxHeater")>
         Public Sub InstantiateDefaultSSMGenInputsTest(section As String)
 
-            Dim dao = New DeclarationDataAdapterTruck()
+            Dim dao = New DeclarationDataAdapterPrimaryBus()
             Dim target As ISSMInputs = dao.CreateSSMModelParameters(Utils.GetDefaultVehicleData(), FuelData.Diesel)
 
             If section = "BusParameterisation" Then
@@ -102,12 +102,12 @@ Namespace UnitTests
                 Assert.AreEqual(3.0R, target.BoundaryConditions.UValue.Value())
                 Assert.AreEqual(18, target.BoundaryConditions.HeatingBoundaryTemperature.AsDegCelsius)
                 Assert.AreEqual(23, target.BoundaryConditions.CoolingBoundaryTemperature.AsDegCelsius)
-                Assert.AreEqual(20, target.BoundaryConditions.HighVentilation.Value()*3600)
-                Assert.AreEqual(7, target.BoundaryConditions.LowVentilation.Value()*3600)
-                Assert.AreEqual(1236.25, Math.Round(target.BoundaryConditions.HighVolumeExchange.Value()*3600, 2))
-                Assert.AreEqual(432.69, Math.Round(target.BoundaryConditions.LowVolumeExchange.Value()*3600, 2))
-                Assert.AreEqual(692.3, Math.Round(target.BoundaryConditions.HighVentPower.Value(), 2))
-                Assert.AreEqual(242.3, Math.Round(target.BoundaryConditions.LowVentPower.Value(), 2))
+                Assert.AreEqual(20, target.BoundaryConditions.VentilationRate.Value()*3600)
+                'Assert.AreEqual(7, target.BoundaryConditions.LowVentilation.Value()*3600)
+                Assert.AreEqual(1236.25, Math.Round(target.BoundaryConditions.VolumeExchange.Value()*3600, 2))
+                'Assert.AreEqual(432.69, Math.Round(target.BoundaryConditions.LowVolumeExchange.Value()*3600, 2))
+                Assert.AreEqual(692.3, Math.Round(target.BoundaryConditions.VentPower.Value(), 2))
+                'Assert.AreEqual(242.3, Math.Round(target.BoundaryConditions.LowVentPower.Value(), 2))
                 Assert.AreEqual(0.56R, target.BoundaryConditions.SpecificVentilationPower.Value()/3600)
                 Assert.AreEqual(0.84, target.BoundaryConditions.AuxHeaterEfficiency)
                 Assert.AreEqual(42700.0/3600.0, target.BoundaryConditions.GCVDieselOrHeatingOil.Value()/3600.0/1000.0)
@@ -130,8 +130,8 @@ Namespace UnitTests
             If section = "AC-System" Then
                 'AC-SYSTEM
                 '*********
-                Assert.AreEqual(ACCompressorType.TwoStage, target.ACSystem.CompressorType)
-                Assert.AreEqual(18, target.ACSystem.CompressorCapacity.Value()/1000.0)
+                Assert.AreEqual(ACCompressorType.TwoStage, target.ACSystem.HVACCompressorType)
+                Assert.AreEqual(18, target.ACSystem.HVACMaxCoolingPower.Value()/1000.0)
                 Assert.AreEqual(3.5, target.ACSystem.COP)
             End If
 
@@ -141,9 +141,9 @@ Namespace UnitTests
                 Assert.Areequal(True, target.Ventilation.VentilationOnDuringHeating)
                 Assert.Areequal(True, target.Ventilation.VentilationWhenBothHeatingAndACInactive)
                 Assert.Areequal(True, target.Ventilation.VentilationDuringAC)
-                Assert.Areequal(VentilationLevel.High, target.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive)
-                Assert.Areequal(VentilationLevel.High, target.Ventilation.VentilationDuringHeating)
-                Assert.AreEqual(VentilationLevel.High, target.Ventilation.VentilationDuringCooling)
+                'Assert.Areequal(VentilationLevel.High, target.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive)
+                'Assert.Areequal(VentilationLevel.High, target.Ventilation.VentilationDuringHeating)
+                'Assert.AreEqual(VentilationLevel.High, target.Ventilation.VentilationDuringCooling)
 
             End If
 
@@ -560,7 +560,7 @@ Namespace UnitTests
             Const filePath As String = "SSMTOOLTestSaveRetreive.json"
             Dim success As Boolean
 
-            Dim dao = New DeclarationDataAdapterTruck()
+            Dim dao = New DeclarationDataAdapterPrimaryBus()
             Dim target As SSMTOOL = New SSMTOOL(dao.CreateSSMModelParameters(Utils.GetDefaultVehicleData(),
                                                                              FuelData.Diesel))
 
@@ -569,9 +569,9 @@ Namespace UnitTests
             Assert.IsTrue(success)
 
             'change something
-            CType(target.SSMInputs.BoundaryConditions, SSMInputs).HighVentilation = 202.202.SI (Of PerSecond)
+            CType(target.SSMInputs.BoundaryConditions, SSMInputs).VentilationRate = 202.202.SI (Of PerSecond)
 
-            Assert.AreEqual(202.202, target.SSMInputs.BoundaryConditions.HighVentilation.Value(), 1e-3)
+            Assert.AreEqual(202.202, target.SSMInputs.BoundaryConditions.VentilationRate.Value(), 1e-3)
 
             'Retreive
             'success = target.Load(filePath)
@@ -584,7 +584,7 @@ Namespace UnitTests
             end try
             Assert.IsTrue(success)
 
-            Assert.AreEqual(20.SI(Unit.SI.Per.Hour).Value(), target.SSMInputs.BoundaryConditions.HighVentilation.Value(),
+            Assert.AreEqual(20.SI(Unit.SI.Per.Hour).Value(), target.SSMInputs.BoundaryConditions.VentilationRate.Value(),
                             1e-3)
         End Sub
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
index 02901bab37..d0857ef624 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
@@ -144,11 +144,10 @@ Public Class Utils
                 .EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions,
                 .HeatingBoundaryTemperature = 18.0.DegCelsiusToKelvin(),
                 .CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(),
-                .HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
-                .LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
+                .VentilationRate = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
                 .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast (Of JoulePerCubicMeter),
-                .CompressorType = ACCompressorType.TwoStage, 
-                .CompressorCapacity = 18.si(Unit.SI.kilo.watt).Cast (of Watt),
+                .HVACCompressorType = ACCompressorType.TwoStage, 
+                .HVACMaxCoolingPower = 18.si(Unit.SI.kilo.watt).Cast (of Watt),
                 .AuxHeaterEfficiency =  0.84,
                 .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast (Of Watt),
                 .FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
new file mode 100644
index 0000000000..13b2f68ce0
--- /dev/null
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/BusHVACSystemConfiguration.cs
@@ -0,0 +1,15 @@
+namespace TUGraz.VectoCommon.BusAuxiliaries {
+	public enum BusHVACSystemConfiguration
+	{
+		Unknown,
+		Configuration1,
+		Configuration2,
+		Configuration3,
+		Configuration4,
+		Configuration5,
+		Configuration6,
+		Configuration7,
+		Configuration8,
+		Configuration9,
+	}
+}
\ No newline at end of file
diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs
index 8f073cafe8..2a1a2894d6 100644
--- a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs
+++ b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs
@@ -59,12 +59,9 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 		Kelvin HeatingBoundaryTemperature { get; }
 		Kelvin CoolingBoundaryTemperature { get; }
 		Kelvin TemperatureCoolingTurnsOff { get; }
-		PerSecond HighVentilation { get; }
-		PerSecond LowVentilation { get; }
-		CubicMeterPerSecond HighVolumeExchange { get; }
-		CubicMeterPerSecond LowVolumeExchange { get; }
-		Watt HighVentPower { get; }
-		Watt LowVentPower { get; }
+		PerSecond VentilationRate { get; }
+		CubicMeterPerSecond VolumeExchange { get; }
+		Watt VentPower { get; }
 		JoulePerCubicMeter SpecificVentilationPower { get; }
 		double AuxHeaterEfficiency { get; }
 		JoulePerKilogramm GCVDieselOrHeatingOil { get; }
@@ -90,8 +87,8 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 	public interface IACSystem
 	{
 		// AC-system				            
-		ACCompressorType CompressorType { get; }
-		Watt CompressorCapacity { get; }
+		ACCompressorType HVACCompressorType { get; }
+		Watt HVACMaxCoolingPower { get; }
 		double COP { get; }
 	}
 
@@ -102,9 +99,10 @@ namespace TUGraz.VectoCommon.BusAuxiliaries
 
 		bool VentilationWhenBothHeatingAndACInactive { get; }
 		bool VentilationDuringAC { get; set; }
-		VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; }
-		VentilationLevel VentilationDuringHeating { get; }
-		VentilationLevel VentilationDuringCooling { get; }
+
+		//VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; }
+		//VentilationLevel VentilationDuringHeating { get; }
+		//VentilationLevel VentilationDuringCooling { get; }
 	}
 
 	public enum VentilationLevel
diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs
index 09e3277ada..73faf2e1b2 100644
--- a/VectoCore/VectoCore/Configuration/Constants.cs
+++ b/VectoCore/VectoCore/Configuration/Constants.cs
@@ -72,9 +72,6 @@ namespace TUGraz.VectoCore.Configuration
 
 		public static class BusAuxiliaries
 		{
-			public const string BrakeAndDoorsActuationKey = "Park brake + 2 doors";
-			public const string CycleTimeActuationKey = "CycleTime";
-
 			public static class SteadyStateModel
 			{
 				public static readonly Kelvin PassengerBoundaryTemperature = 17.0.DegCelsiusToKelvin();
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
index ebf718ee30..fcf9255eae 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
@@ -42,8 +42,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			//retVal.PassengerBoundaryTemperature = genInput.GetEx<double>("BC_PassengerBoundaryTemperature").DegCelsiusToKelvin();
 			retVal.HeatingBoundaryTemperature = genInput.GetEx<double>("BC_HeatingBoundaryTemperature").DegCelsiusToKelvin();
 			retVal.CoolingBoundaryTemperature = genInput.GetEx<double>("BC_CoolingBoundaryTemperature").DegCelsiusToKelvin();
-			retVal.HighVentilation = genInput.GetEx<double>("BC_HighVentilation").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
-			retVal.LowVentilation = genInput.GetEx<double>("BC_lowVentilation").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
+			retVal.VentilationRate = genInput.GetEx<double>("BC_VentilationRate").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
+			//retVal.LowVentilation = genInput.GetEx<double>("BC_lowVentilation").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
 			retVal.SpecificVentilationPower = genInput.GetEx<double>("BC_SpecificVentilationPower").SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast<JoulePerCubicMeter>();
 			retVal.AuxHeaterEfficiency = genInput.GetEx<double>("BC_AuxHeaterEfficiency");
 			//retVal.GCVDieselOrHeatingOil = genInput.GetEx<double>("BC_GCVDieselOrHeatingOil").SI(Unit.SI.Kilo.Watt.Hour.Per.Kilo.Gramm).Cast<JoulePerKilogramm>();
@@ -56,14 +56,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				genInput.GetEx<double>("EC_Solar").SI<WattPerSquareMeter>(), 1.0);
 			//retVal.EnviromentalConditions_BatchFile = genInput.GetEx<string>("EC_EnviromentalConditions_BatchFile");
 			//retVal.BatchMode = genInput.GetEx<bool>("EC_EnviromentalConditions_BatchEnabled");
-			retVal.CompressorType = ACCompressorTypeExtensions.ParseEnum(genInput.GetEx<string>("AC_CompressorType"));
-			retVal.CompressorCapacity = genInput.GetEx<double>("AC_CompressorCapacitykW").SI(Unit.SI.Kilo.Watt).Cast<Watt>();
+			retVal.HVACCompressorType = ACCompressorTypeExtensions.ParseEnum(genInput.GetEx<string>("AC_CompressorType"));
+			retVal.HVACMaxCoolingPower = genInput.GetEx<double>("AC_CompressorCapacitykW").SI(Unit.SI.Kilo.Watt).Cast<Watt>();
 			retVal.VentilationOnDuringHeating = genInput.GetEx<bool>("VEN_VentilationOnDuringHeating");
 			retVal.VentilationWhenBothHeatingAndACInactive = genInput.GetEx<bool>("VEN_VentilationWhenBothHeatingAndACInactive");
 			retVal.VentilationDuringAC = genInput.GetEx<bool>("VEN_VentilationDuringAC");
-			retVal.VentilationFlowSettingWhenHeatingAndACInactive = genInput.GetEx<string>("VEN_VentilationFlowSettingWhenHeatingAndACInactive").ParseEnum<VentilationLevel>();
-			retVal.VentilationDuringHeating = genInput.GetEx<string>("VEN_VentilationDuringHeating").ParseEnum<VentilationLevel>();
-			retVal.VentilationDuringCooling = genInput.GetEx<string>("VEN_VentilationDuringCooling").ParseEnum<VentilationLevel>();
+			//retVal.VentilationFlowSettingWhenHeatingAndACInactive = genInput.GetEx<string>("VEN_VentilationFlowSettingWhenHeatingAndACInactive").ParseEnum<VentilationLevel>();
+			//retVal.VentilationDuringHeating = genInput.GetEx<string>("VEN_VentilationDuringHeating").ParseEnum<VentilationLevel>();
+			//retVal.VentilationDuringCooling = genInput.GetEx<string>("VEN_VentilationDuringCooling").ParseEnum<VentilationLevel>();
 			//retVal.EngineWasteHeatkW = genInput.GetEx<double>("AH_EngineWasteHeatkW").SI(Unit.SI.Kilo.Watt).Cast<Watt>();
 			retVal.FuelFiredHeaterPower = genInput.GetEx<double>("AH_FuelFiredHeaterkW").SI(Unit.SI.Kilo.Watt).Cast<Watt>();
 			retVal.FuelEnergyToHeatToCoolant = genInput.GetEx<double>("AH_FuelEnergyToHeatToCoolant");
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
index 5d86618c5b..b479a91e19 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs
@@ -1,10 +1,16 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
+using TUGraz.VectoCommon.BusAuxiliaries;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.BusAuxiliaries;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -61,5 +67,90 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		}
 
 		#endregion
+
+		public IAuxiliaryConfig CreateBusAuxiliariesData(IVehicleDeclarationInputData vehicleData, VectoRunData runData)
+		{
+			var retVal = new AuxiliaryConfig();
+
+			retVal.ElectricalUserInputsConfig = GetElectricalUserConfig(vehicleData);
+			retVal.PneumaticUserInputsConfig = GetPneumaticUserConfig(vehicleData);
+			retVal.PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(runData.Retarder.Type);
+			retVal.Actuations = DeclarationData.BusAuxiliaries.ActuationsMap.Lookup(runData.Mission.MissionType);
+			retVal.SSMInputs = CreateSSMModelParameters(runData.VehicleData, FuelData.Diesel);
+			retVal.VehicleData = runData.VehicleData;
+			retVal.FuelMap = runData.EngineData.Fuels.First().ConsumptionMap;
+
+
+			return retVal;
+		}
+
+		private IElectricsUserInputsConfig GetElectricalUserConfig(IVehicleDeclarationInputData vehicleData)
+		{
+			throw new NotImplementedException();
+		}
+
+		private IPneumaticUserInputsConfig GetPneumaticUserConfig(IVehicleDeclarationInputData vehicleData)
+		{
+			throw new NotImplementedException();
+		}
+
+		public virtual ISSMInputs CreateSSMModelParameters(IVehicleData vehicleData, IFuelProperties heatingFuel)
+		{
+			var retVal = new SSMInputs(vehicleData, null, heatingFuel) {
+				Technologies = DeclarationData.BusAuxiliaries.SSMTechnologyList,
+				DefaultConditions = new EnvironmentalConditionMapEntry(
+					Constants.BusAuxiliaries.SteadyStateModel.DefaultTemperature,
+					Constants.BusAuxiliaries.SteadyStateModel.DefaultSolar,
+					1.0),
+				EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions,
+				HeatingBoundaryTemperature = Constants.BusAuxiliaries.SteadyStateModel.HeatingBoundaryTemperature,
+				CoolingBoundaryTemperature = Constants.BusAuxiliaries.SteadyStateModel.CoolingBoundaryTemperature,
+
+				//HighVentilation = Constants.BusAuxiliaries.SteadyStateModel.HighVentilation,
+				//LowVentilation = Constants.BusAuxiliaries.SteadyStateModel.LowVentilation,
+				SpecificVentilationPower = Constants.BusAuxiliaries.SteadyStateModel.SpecificVentilationPower,
+
+				// TODO! MQ 2019-19-29 Compressor Type and CompressorCapacity from input data?
+				HVACCompressorType = ACCompressorType.TwoStage, // "2-stage",
+				HVACMaxCoolingPower = 18.SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
+
+				AuxHeaterEfficiency = Constants.BusAuxiliaries.SteadyStateModel.AuxHeaterEfficiency,
+				FuelFiredHeaterPower = Constants.BusAuxiliaries.SteadyStateModel.FuelFiredHeaterPower,
+				FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
+				CoolantHeatTransferredToAirCabinHeater = Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
+				GFactor = Constants.BusAuxiliaries.SteadyStateModel.GFactor,
+				VentilationOnDuringHeating = true,
+				VentilationWhenBothHeatingAndACInactive = true,
+				VentilationDuringAC = true,
+				//VentilationDuringHeating = VentilationLevel.High,
+				//VentilationDuringCooling = VentilationLevel.High,
+				//VentilationFlowSettingWhenHeatingAndACInactive = VentilationLevel.High,
+				MaxPossibleBenefitFromTechnologyList =
+					Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList,
+			};
+
+			DeclarationData.BusAuxiliaries.SetHVACParameters(retVal, BusHVACSystemConfiguration.Configuration6);
+
+			return retVal;
+		}
+
+		public virtual IPneumaticsConsumersDemand CreatePneumaticAuxConfig(RetarderType retarderType)
+		{
+			return new PneumaticsConsumersDemand() {
+				AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection,
+				AirControlledSuspension = Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension,
+				Braking = retarderType == RetarderType.None ?
+					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder :
+					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder,
+				BreakingWithKneeling = Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling,
+				DeadVolBlowOuts = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts,
+				DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume,
+				NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand,
+				SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand,
+				OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction,
+				DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening,
+				StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation,
+			};
+		}
 	}
 }
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterTruck.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterTruck.cs
index 3f9c53887a..9d97888c04 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterTruck.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterTruck.cs
@@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			retVal.AirDensity = DeclarationData.AirDensity;
 			retVal.VIN = data.VIN;
 			retVal.ManufacturerAddress = data.ManufacturerAddress;
-			retVal.LegislativeClass = data.LegislativeClass;
+//			retVal.LegislativeClass = data.LegislativeClass;
 			retVal.ZeroEmissionVehicle = data.ZeroEmissionVehicle;
 			retVal.SleeperCab = data.SleeperCab;
 			retVal.TrailerGrossVehicleWeight = mission.Trailer.Sum(t => t.TrailerGrossVehicleWeight).DefaultIfNull(0);
@@ -606,58 +606,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			};
 		}
 
-		public virtual ISSMInputs CreateSSMModelParameters(IVehicleData vehicleData, IFuelProperties heatingFuel)
-		{
-			return new SSMInputs(vehicleData, null, heatingFuel) {
-				Technologies = DeclarationData.BusAuxiliaries.SSMTechnologyList,
-				DefaultConditions = new EnvironmentalConditionMapEntry(
-					Constants.BusAuxiliaries.SteadyStateModel.DefaultTemperature,
-					Constants.BusAuxiliaries.SteadyStateModel.DefaultSolar,
-					1.0),
-				EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions,
-				HeatingBoundaryTemperature = Constants.BusAuxiliaries.SteadyStateModel.HeatingBoundaryTemperature,
-				CoolingBoundaryTemperature = Constants.BusAuxiliaries.SteadyStateModel.CoolingBoundaryTemperature,
-				HighVentilation = Constants.BusAuxiliaries.SteadyStateModel.HighVentilation,
-				LowVentilation = Constants.BusAuxiliaries.SteadyStateModel.LowVentilation,
-				SpecificVentilationPower = Constants.BusAuxiliaries.SteadyStateModel.SpecificVentilationPower,
-
-				// TODO! MQ 2019-19-29 Compressor Type and CompressorCapacity from input data?
-				CompressorType = ACCompressorType.TwoStage, // "2-stage",
-				CompressorCapacity = 18.SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
-
-				AuxHeaterEfficiency = Constants.BusAuxiliaries.SteadyStateModel.AuxHeaterEfficiency,
-				FuelFiredHeaterPower = Constants.BusAuxiliaries.SteadyStateModel.FuelFiredHeaterPower,
-				FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant,
-				CoolantHeatTransferredToAirCabinHeater = Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater,
-				GFactor = Constants.BusAuxiliaries.SteadyStateModel.GFactor,
-				VentilationOnDuringHeating = true,
-				VentilationWhenBothHeatingAndACInactive = true,
-				VentilationDuringAC = true,
-				VentilationDuringHeating = VentilationLevel.High,
-				VentilationDuringCooling = VentilationLevel.High,
-				VentilationFlowSettingWhenHeatingAndACInactive = VentilationLevel.High,
-				MaxPossibleBenefitFromTechnologyList =
-					Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList,
-			};
-		}
 
-		public virtual IPneumaticsConsumersDemand CreatePneumaticAuxConfig(RetarderType retarderType)
-		{
-			return new PneumaticsConsumersDemand() {
-				AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection,
-				AirControlledSuspension = Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension,
-				Braking = retarderType == RetarderType.None ?
-					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder : 
-					Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder,
-				BreakingWithKneeling = Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling,
-				DeadVolBlowOuts = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts,
-				DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume,
-				NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand,
-				SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand,
-				OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction,
-				DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening,
-				StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation,
-			};
-		}
 	}
 }
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeBusVectoRunDataFactory.cs
index d54c4074d6..3ad2a7e027 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeBusVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeBusVectoRunDataFactory.cs
@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
 							AxleGearData = _axlegearData,
 							AngledriveData = _angledriveData,
 							Aux = DataAdapter.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData,
-							vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass, vehicle.Length ?? mission.VehicleLength),
+								vehicle.Components.BusAuxiliaries, mission.MissionType, _segment.VehicleClass, vehicle.Length ?? mission.VehicleLength),
 							Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
 							Retarder = _retarderData,
 							DriverData = _driverdata,
@@ -95,6 +95,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
 						};
 						simulationRunData.EngineData.FuelMode = modeIdx;
 						simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
+						simulationRunData.BusAuxiliaries = _dao.CreateBusAuxiliariesData(InputDataProvider.JobInputData.Vehicle, simulationRunData);
+							
 						yield return simulationRunData;
 					}
 				}
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
index d660f42410..5670c83882 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs
@@ -231,7 +231,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 					loading),
 				AirdragData = AirdragData,
 				DriverData = null,
-				AdvancedAux = null,
+				BusAuxiliaries = null,
 				Retarder = RetarderData,
 				PTO = PTOTransmissionData,
 				Report = Report,
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index aeb35bc788..e2f574e187 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -97,7 +97,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
 						AirdragData = dao.CreateAirdragData(vehicle.Components.AirdragInputData, vehicle),
 						DriverData = driver,
 						Aux = dao.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData),
-						AdvancedAux = dao.CreateAdvancedAuxData(vehicle.Components.AuxiliaryInputData),
+						BusAuxiliaries = dao.CreateAdvancedAuxData(vehicle.Components.AuxiliaryInputData),
 						Retarder = dao.CreateRetarderData(vehicle.Components.RetarderInputData),
 						PTO = ptoTransmissionData,
 						Cycle = new DrivingCycleProxy(drivingCycle, cycle.Name),
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
index 696df4a5cf..07342d1844 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs
@@ -12,6 +12,7 @@
 using System;
 using Newtonsoft.Json;
 using TUGraz.VectoCommon.BusAuxiliaries;
+using TUGraz.VectoCommon.Utils;
 
 namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 	[Serializable()]
@@ -28,10 +29,10 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 
 		public ISSMInputs SSMInputs { get; internal set; }
 
-		public IActuationsMap ActuationsMap { get; internal set; }
-
-		public string Cycle { get; internal set; }
+		//public IActuationsMap ActuationsMap { get; internal set; }
+		public IActuations Actuations { get; internal set; }
 
+		
 		public IVehicleData VehicleData { get; internal set; }
 	
 		public IFuelConsumptionMap FuelMap { get; internal set; }
@@ -235,4 +236,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries {
 		}
 
 	}
+
+	
 }
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
index 45cefda3c5..db784ad843 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs
@@ -189,12 +189,8 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 				var run1TotalW = Run1.TotalW(environmentalTemperature, solar);
 				var run2TotalW = Run2.TotalW(environmentalTemperature, solar);
 
-				var res = run1TotalW < 0 && run2TotalW < 0
-					? ventilation.VentilationOnDuringHeating && ventilation.VentilationDuringHeating == VentilationLevel.High
-						? bc.HighVentPower
-						: ventilation.VentilationOnDuringHeating && ventilation.VentilationDuringHeating ==VentilationLevel.Low
-							? bc.LowVentPower
-							: 0.SI<Watt>()
+				var res = run1TotalW < 0 && run2TotalW < 0 && ventilation.VentilationOnDuringHeating
+					? bc.VentPower
 					: 0.SI<Watt>();
 
 				return res;
@@ -239,7 +235,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 			return environmentalTemperature < gen.BoundaryConditions.TemperatureCoolingTurnsOff
 				? 0.SI<Watt>()
-				: gen.ACSystem.CompressorType.IsElectrical()
+				: gen.ACSystem.HVACCompressorType.IsElectrical()
 					? 0.SI<Watt>()
 					: run1TotalW > 0 && run2TotalW > 0
 						? VectoMath.Min(run1TotalW, run2TotalW)
@@ -262,7 +258,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			var run2TotalW = Run2.TotalW(environmentalTemperature, solar);
 			return environmentalTemperature < gen.BoundaryConditions.TemperatureCoolingTurnsOff
 				? 0.SI<Watt>()
-				: gen.ACSystem.CompressorType.IsElectrical()
+				: gen.ACSystem.HVACCompressorType.IsElectrical()
 					? run1TotalW > 0 && run2TotalW > 0
 						? VectoMath.Min(run1TotalW, run2TotalW)
 						: 0.SI<Watt>()
@@ -288,12 +284,8 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			var run2TotalW = Run2.TotalW(environmentalTemperature, solar);
 
 			return environmentalTemperature >= gen.BoundaryConditions.TemperatureCoolingTurnsOff && run1TotalW > 0 &&
-					run2TotalW > 0
-				? gen.Ventilation.VentilationDuringAC && gen.Ventilation.VentilationDuringCooling == VentilationLevel.High
-					? gen.BoundaryConditions.HighVentPower
-					: gen.Ventilation.VentilationDuringAC && gen.Ventilation.VentilationDuringCooling == VentilationLevel.Low
-						? gen.BoundaryConditions.LowVentPower
-						: 0.SI<Watt>()
+					run2TotalW > 0 && gen.Ventilation.VentilationDuringAC
+				?  gen.BoundaryConditions.VentPower
 				: 0.SI<Watt>();
 		}
 
@@ -319,13 +311,9 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 				return (environmentalTemperature < gen.BoundaryConditions.TemperatureCoolingTurnsOff &&
 						run1TotalW > 0 && run2TotalW > 0) ||
 						(run1TotalW > 0 && run2TotalW < 0)
-					? gen.Ventilation.VentilationWhenBothHeatingAndACInactive &&
-					gen.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive == VentilationLevel.High
-						? gen.BoundaryConditions.HighVentPower
-						: gen.Ventilation.VentilationWhenBothHeatingAndACInactive &&
-						gen.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive == VentilationLevel.Low
-							? gen.BoundaryConditions.LowVentPower
-							: 0.SI<Watt>()
+					? gen.Ventilation.VentilationWhenBothHeatingAndACInactive
+						? gen.BoundaryConditions.VentPower
+						: 0.SI<Watt>()
 					: 0.SI<Watt>();
 			
 		}
@@ -386,7 +374,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 				//			Math.Max(If(gen.AC_CompressorType.ToLower() = "mechanical", tl.CValueVariation, 0),
 				//					-gen.BC_MaxPossibleBenefitFromTechnologyList))
 
-				if (gen.ACSystem.CompressorType.IsElectrical()) {
+				if (gen.ACSystem.HVACCompressorType.IsElectrical()) {
 					return 0;
 				}
 
@@ -408,7 +396,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 				// Dim C43 As Double   =  gen.BC_MaxPossibleBenefitFromTechnologyList
 				// Dim C53 As string   =  gen.AC_CompressorType
 
-				if (gen.ACSystem.CompressorType.IsMechanical()) {
+				if (gen.ACSystem.HVACCompressorType.IsMechanical()) {
 					return 0;
 				}
 
@@ -534,7 +522,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 			var electricalWBaseCurrentResult =
 				VectoMath.Min(
-					BaseCoolingW_ElectricalCoolingHeating(env.Temperature, env.Solar), genInputs.ACSystem.CompressorCapacity) /
+					BaseCoolingW_ElectricalCoolingHeating(env.Temperature, env.Solar), genInputs.ACSystem.HVACMaxCoolingPower) /
 				genInputs.ACSystem.COP + BaseHeatingW_ElectricalVentilation(env.Temperature, env.Solar) +
 				BaseCoolingW_ElectricalVentilation(env.Temperature, env.Solar) +
 				BaseVentilationW_ElectricalVentilation(env.Temperature, env.Solar);
@@ -553,7 +541,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			// Dim C59 = genInputs.AC_COP 
 
 			var MechanicalWBaseCurrentResult = VectoMath.Min(
-													BaseCoolingW_Mechanical(env.Temperature, env.Solar), genInputs.ACSystem.CompressorCapacity) /
+													BaseCoolingW_Mechanical(env.Temperature, env.Solar), genInputs.ACSystem.HVACMaxCoolingPower) /
 												genInputs.ACSystem.COP;
 
 			return MechanicalWBaseCurrentResult * env.Weighting;
@@ -585,7 +573,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 			var H94 = BaseCoolingW_ElectricalCoolingHeating(env.Temperature, env.Solar);
 			var H100 = TechListAdjustedCoolingW_ElectricalCoolingHeating;
-			var C54 = genInputs.ACSystem.CompressorCapacity;
+			var C54 = genInputs.ACSystem.HVACMaxCoolingPower;
 			var C59 = genInputs.ACSystem.COP;
 
 			var I93 = BaseHeatingW_ElectricalVentilation(env.Temperature, env.Solar);
@@ -607,7 +595,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 			var F94 = BaseCoolingW_Mechanical(env.Temperature, env.Solar);
 			var F100 = TechListAdjustedCoolingW_Mechanical;
-			var C54 = genInputs.ACSystem.CompressorCapacity;
+			var C54 = genInputs.ACSystem.HVACMaxCoolingPower;
 			var C59 = genInputs.ACSystem.COP;
 
 			var MechanicalWBaseAdjusted = (VectoMath.Min((F94 * (1 - F100)), C54) / C59);
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs
index 2b7d6e234f..4dba035088 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs
@@ -203,46 +203,46 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 		}
 
 		// C29 - ( L/H )  --- !! 1/h
-		public PerSecond HighVentilation { get; set; }
+		public PerSecond VentilationRate { get; set; }
 
 		// C30 - ( L/H )   --- !! 1/h
-		public PerSecond LowVentilation { get; set; }
+		//public PerSecond LowVentilation { get; set; }
 
 		// C31 - ( M3/H )
-		public CubicMeterPerSecond HighVolumeExchange
+		public CubicMeterPerSecond VolumeExchange
 		{
 			get {
 				// =D11*C29
-				return BusVolume * HighVentilation;
+				return BusVolume * VentilationRate;
 			}
 		}
 
 		// C32 - ( M3/H )
-		public CubicMeterPerSecond LowVolumeExchange
-		{
-			get {
-				// =C30*D11
-				return BusVolume * LowVentilation;
-			}
-		}
+		//public CubicMeterPerSecond LowVolumeExchange
+		//{
+		//	get {
+		//		// =C30*D11
+		//		return BusVolume * LowVentilation;
+		//	}
+		//}
 
 		// C33 - ( W )
-		public Watt HighVentPower
+		public Watt VentPower
 		{
 			get {
 				// =C31*C35
-				return HighVolumeExchange * SpecificVentilationPower;
+				return VolumeExchange * SpecificVentilationPower;
 			}
 		}
 
 		// C34 - ( W )
-		public Watt LowVentPower
-		{
-			get {
-				// =C32*C35
-				return LowVolumeExchange * SpecificVentilationPower;
-			}
-		}
+		//public Watt LowVentPower
+		//{
+		//	get {
+		//		// =C32*C35
+		//		return LowVolumeExchange * SpecificVentilationPower;
+		//	}
+		//}
 
 		// C35 - ( Wh/M3 )
 		public JoulePerCubicMeter SpecificVentilationPower { get; set; }
@@ -299,16 +299,16 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 
 
 		// C53 - "Continous/2-stage/3-stage/4-stage
-		public ACCompressorType CompressorType { get; set; }
+		public ACCompressorType HVACCompressorType { get; set; }
 
 		// mechanical/electrical
 		public string CompressorTypeDerived
 		{
-			get { return CompressorType == ACCompressorType.Continuous ? "Electrical" : "Mechanical"; }
+			get { return HVACCompressorType == ACCompressorType.Continuous ? "Electrical" : "Mechanical"; }
 		}
 
 		// C54 -  ( KW )
-		public Watt CompressorCapacity { get; set; }
+		public Watt HVACMaxCoolingPower { get; set; }
 
 		// C59
 		public double COP
@@ -316,7 +316,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			get {
 				var cop = 3.5;
 
-				switch (CompressorType) {
+				switch (HVACCompressorType) {
 					case ACCompressorType.TwoStage: break;
 					case ACCompressorType.ThreeStage: 
 					case ACCompressorType.FourStage:
@@ -345,13 +345,13 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 		public bool VentilationDuringAC { get; set; }
 
 		// C65 - String high/low
-		public VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; set; }
+		//public VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; set; }
 
-		// C66 - String high/low
-		public VentilationLevel VentilationDuringHeating { get; set; }
+		//// C66 - String high/low
+		//public VentilationLevel VentilationDuringHeating { get; set; }
 
-		// C67 - String high/low                                               
-		public VentilationLevel VentilationDuringCooling { get; set; }
+		//// C67 - String high/low                                               
+		//public VentilationLevel VentilationDuringCooling { get; set; }
 
 
 		// C70 - ( KW )
diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMTOOL.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMTOOL.cs
index 181c3e28f5..b72931d963 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMTOOL.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMTOOL.cs
@@ -73,7 +73,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC
 			get {
 				var mechAdjusted = SSMDisabled ? 0.SI<Watt>() : Calculate.MechanicalWBaseAdjusted;
 
-				if (CompressorCapacityInsufficientWarned == false && (mechAdjusted) / (1000 * SSMInputs.ACSystem.COP) > SSMInputs.ACSystem.CompressorCapacity) {
+				if (CompressorCapacityInsufficientWarned == false && (mechAdjusted) / (1000 * SSMInputs.ACSystem.COP) > SSMInputs.ACSystem.HVACMaxCoolingPower) {
 					OnMessage(this, "HVAC SSM :AC-Compressor Capacity unable to service cooling, run continues as if capacity was sufficient.", AdvancedAuxiliaryMessageType.Warning);
 					CompressorCapacityInsufficientWarned = true;
 				}
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 338379d1bd..dfc07ee4bf 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
+using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
 using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
@@ -178,19 +179,27 @@ namespace TUGraz.VectoCore.Models.Declaration
 				}
 			}
 
-			
-			//public static IPneumaticUserInputsConfig DefaultPneumaticUserConfig { get; }
-
-			public static IHVACUserInputsConfig DefaultHVACUserConfig { get; }
+			public static void SetHVACParameters(SSMInputs ssmInputs, BusHVACSystemConfiguration hvacSystemConfig)
+			{
+				switch (hvacSystemConfig) {
+					case BusHVACSystemConfiguration.Unknown: break;
+					case BusHVACSystemConfiguration.Configuration1: 
+					case BusHVACSystemConfiguration.Configuration2:
+						ssmInputs.VentilationRate = Constants.BusAuxiliaries.SteadyStateModel.LowVentilation;
+						break;
+					case BusHVACSystemConfiguration.Configuration3: 
+					case BusHVACSystemConfiguration.Configuration4: 
+					case BusHVACSystemConfiguration.Configuration5: 
+					case BusHVACSystemConfiguration.Configuration6: 
+					case BusHVACSystemConfiguration.Configuration7: 
+					case BusHVACSystemConfiguration.Configuration8: 
+					case BusHVACSystemConfiguration.Configuration9:
+						ssmInputs.VentilationRate = Constants.BusAuxiliaries.SteadyStateModel.HighVentilation;
+						break;
+					default: throw new ArgumentOutOfRangeException(nameof(hvacSystemConfig), hvacSystemConfig, null);
+				}
+			}
 
-			//public static IAuxiliaryConfig DefaultAuxiliaryConfig 
-			//{
-			//	get {
-			//		return busAuxConfig ?? (busAuxConfig = new AuxiliaryConfig(
-			//					DefaultElectricUserConfig, DefaultPneumaticAuxConfig, DefaultPneumaticUserConfig, DefaultHVACUserConfig,
-			//					SSMDefaultValues));
-			//	}
-			//}
 		}
 
 		public static class Driver
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index df525b09a0..d1b6a5ca25 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -273,7 +273,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		{
 			var conventionalAux = CreateAuxiliaries(data, container);
 			// TODO: MQ 2019-07-30 -- which fuel map for advanced auxiliaries?!
-			var busAux = new BusAuxiliariesAdapter(container, data.AdvancedAux, data.Cycle.Name,
+			var busAux = new BusAuxiliariesAdapter(container, data.BusAuxiliaries, data.Cycle.Name,
 				data.VehicleData.TotalVehicleWeight, data.EngineData.Fuels[0].ConsumptionMap, data.EngineData.IdleSpeed, conventionalAux);
 			return busAux;
 		}
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
index 4cb7a43f3a..a23bf4436d 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs
@@ -181,7 +181,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 					addReportResult: _mode == ExecutionMode.Declaration ? addReportResult : null,
 					writeEngineOnly: _engineOnlyMode,
 					filter: GetModDataFilter(data)) {
-					WriteAdvancedAux = data.AdvancedAux != null,
+					WriteAdvancedAux = data.BusAuxiliaries != null,
 					WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults
 				};
 
diff --git a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
index 58ff6877aa..7767168125 100644
--- a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
+++ b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs
@@ -190,8 +190,8 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 			retVal["BC_GFactor"] = ssmInputs.BoundaryConditions.GFactor;
 			retVal["BC_HeatingBoundaryTemperature"] = ssmInputs.BoundaryConditions.HeatingBoundaryTemperature.AsDegCelsius;
 			retVal["BC_CoolingBoundaryTemperature"] = ssmInputs.BoundaryConditions.CoolingBoundaryTemperature.AsDegCelsius;
-			retVal["BC_HighVentilation"] = ssmInputs.BoundaryConditions.HighVentilation.ConvertToPerHour().Value;
-			retVal["BC_lowVentilation"] = ssmInputs.BoundaryConditions.LowVentilation.ConvertToPerHour().Value;
+			retVal["BC_VentilationRate"] = ssmInputs.BoundaryConditions.VentilationRate.ConvertToPerHour().Value;
+			//retVal["BC_lowVentilation"] = ssmInputs.BoundaryConditions.LowVentilation.ConvertToPerHour().Value;
 			retVal["BC_SpecificVentilationPower"] = ssmInputs.BoundaryConditions.SpecificVentilationPower.ConvertToWattHourPerCubicMeter().Value;
 			retVal["BC_AuxHeaterEfficiency"] = ssmInputs.BoundaryConditions.AuxHeaterEfficiency;
 			retVal["BC_GCVDieselOrHeatingOil"] = ssmInputs.BoundaryConditions.GCVDieselOrHeatingOil.ConvertToKiloWattHourPerKilogramm().Value;
@@ -199,14 +199,14 @@ namespace TUGraz.VectoCore.OutputData.FileIO
 			retVal["BC_MaxPossibleBenefitFromTechnologyList"] = ssmInputs.BoundaryConditions.MaxPossibleBenefitFromTechnologyList;
 			retVal["EC_EnviromentalTemperature"] = ssmInputs.EnvironmentalConditions.DefaultConditions.Temperature.AsDegCelsius;
 			retVal["EC_Solar"] = ssmInputs.EnvironmentalConditions.DefaultConditions.Solar.Value();
-			retVal["AC_CompressorType"] = ssmInputs.ACSystem.CompressorType.ToString();
-			retVal["AC_CompressorCapacitykW"] = ssmInputs.ACSystem.CompressorCapacity.ConvertToKiloWatt().Value;
+			retVal["AC_CompressorType"] = ssmInputs.ACSystem.HVACCompressorType.ToString();
+			retVal["AC_CompressorCapacitykW"] = ssmInputs.ACSystem.HVACMaxCoolingPower.ConvertToKiloWatt().Value;
 			retVal["VEN_VentilationOnDuringHeating"] = ssmInputs.Ventilation.VentilationOnDuringHeating;
 			retVal["VEN_VentilationWhenBothHeatingAndACInactive"] = ssmInputs.Ventilation.VentilationWhenBothHeatingAndACInactive;
 			retVal["VEN_VentilationDuringAC"] = ssmInputs.Ventilation.VentilationDuringAC;
-			retVal["VEN_VentilationFlowSettingWhenHeatingAndACInactive"] = ssmInputs.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive;
-			retVal["VEN_VentilationDuringHeating"] = ssmInputs.Ventilation.VentilationDuringHeating;
-			retVal["VEN_VentilationDuringCooling"] = ssmInputs.Ventilation.VentilationDuringCooling;
+			//retVal["VEN_VentilationFlowSettingWhenHeatingAndACInactive"] = ssmInputs.Ventilation.VentilationFlowSettingWhenHeatingAndACInactive;
+			//retVal["VEN_VentilationDuringHeating"] = ssmInputs.Ventilation.VentilationDuringHeating;
+			//retVal["VEN_VentilationDuringCooling"] = ssmInputs.Ventilation.VentilationDuringCooling;
 			retVal["AH_FuelFiredHeaterkW"] = ssmInputs.AuxHeater.FuelFiredHeaterPower.ConvertToKiloWatt().Value;
 			retVal["AH_FuelEnergyToHeatToCoolant"] = ssmInputs.AuxHeater.FuelEnergyToHeatToCoolant;
 			retVal["AH_CoolantHeatTransferredToAirCabinHeater"] = ssmInputs.AuxHeater.CoolantHeatTransferredToAirCabinHeater;
diff --git a/VectoCore/VectoCore/Resources/Declaration/VAUXBus/SP-AxleFactor.csv b/VectoCore/VectoCore/Resources/Declaration/VAUXBus/SP-AxleFactor.csv
new file mode 100644
index 0000000000..0f0af18bb6
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/Declaration/VAUXBus/SP-AxleFactor.csv
@@ -0,0 +1,9 @@
+Technology                             , axle - Heavy Urban , axle - Urban , axle - Suburban , axle - Interurban , axle - Coach
+Fixed displacement                     , 1.00               , 1.00         , 1.00            , 1.00              , 1.00
+Fixed displacement with elec. control  , 1.00               , 1.00         , 1.00            , 1.00              , 1.00
+Dual displacement with mech. control   , 0.85               , 0.85         , 0.85            , 0.85              , 0.85
+Dual displacement with elec. control   , 0.85               , 0.85         , 0.85            , 0.85              , 0.85
+Variable displacement mech. controlled , 0.75               , 0.75         , 0.75            , 0.75              , 0.75
+Variable displacement elec. controlled , 0.60               , 0.60         , 0.60            , 0.60              , 0.60
+Electric driven pump                   , 0.25               , 0.25         , 0.25            , 0.25              , 0.25
+Full electric steering gear            , 0.10               , 0.10         , 0.10            , 0.10              , 0.10
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Utils/ProviderExtensions.cs b/VectoCore/VectoCore/Utils/ProviderExtensions.cs
index 8394d613c4..3d5057bd5e 100644
--- a/VectoCore/VectoCore/Utils/ProviderExtensions.cs
+++ b/VectoCore/VectoCore/Utils/ProviderExtensions.cs
@@ -47,7 +47,7 @@ namespace TUGraz.VectoCore.Utils
 			VectoRunData data)
 		{
 			// aux --> engine
-			if (data.AdvancedAux != null) {
+			if (data.BusAuxiliaries != null) {
 				engine.Connect(PowertrainBuilder.CreateAdvancedAuxiliaries(data, container).Port());
 			} else {
 				if (data.Aux != null) {
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 2c8fea0e04..9ce0961b39 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -276,6 +276,7 @@
     <Compile Include="InputData\Reader\DataObjectAdapter\IDeclarationDataAdapter.cs" />
     <Compile Include="InputData\Reader\Impl\AbstractDeclarationVectoRunDataFactory.cs" />
     <Compile Include="InputData\Reader\Impl\DeclarationModeBusVectoRunDataFactory.cs" />
+    <Compile Include="Models\BusAuxiliaries\Actuations.cs" />
     <Compile Include="Models\BusAuxiliaries\AdvancedAuxiliaries.cs" />
     <Compile Include="Models\BusAuxiliaries\AuxiliaryConfig.cs" />
     <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\AbstractModule.cs" />
@@ -774,9 +775,6 @@
     <EmbeddedResource Include="Resources\XSD\VectoMonitoring.xsd">
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.3_DF.xsd">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
     <EmbeddedResource Include="Resources\XSD\VectoOutputCustomer.0.8.xsd">
       <SubType>Designer</SubType>
     </EmbeddedResource>
@@ -799,24 +797,20 @@
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     <EmbeddedResource Include="Resources\Declaration\Buses\DefaultActuationsMap.APAC" />
-    <EmbeddedResource Include="Resources\Declaration\Buses\DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP" />
-    <EmbeddedResource Include="Resources\Declaration\Buses\DEFAULT_2-Cylinder_1-Stage_650ccm.ACMP" />
-    <EmbeddedResource Include="Resources\Declaration\Buses\DEFAULT_2-Cylinder_2-Stage_398ccm.ACMP" />
-    <EmbeddedResource Include="Resources\Declaration\Buses\DEFAULT_3-Cylinder_2-Stage_598ccm.ACMP" />
     <EmbeddedResource Include="Resources\Declaration\HeavyBusSegmentationTable.csv" />
     <EmbeddedResource Include="Resources\Declaration\VACC\Bus.vacc" />
-    <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.4_Tyre.xsd">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.5_Gearbox.xsd">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
     <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.6_Buses.xsd">
       <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Resources\Declaration\VAUXBus\SP-Axles.csv" />
-    <EmbeddedResource Include="Resources\Declaration\VAUXBus\SP-AxleFactor.csv" />
-    <EmbeddedResource Include="Resources\Declaration\VAUXBus\SP-TubingFactor.csv" />
+    <EmbeddedResource Include="Resources\Declaration\VAUXBus\SP-Factors.csv" />
+    <EmbeddedResource Include="Resources\Declaration\VAUXBus\DEFAULT_1-Cylinder_1-Stage_393ccm.ACMP" />
+    <EmbeddedResource Include="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_1-Stage_650ccm.ACMP" />
+    <EmbeddedResource Include="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_2-Stage_398ccm.ACMP" />
+    <EmbeddedResource Include="Resources\Declaration\VAUXBus\DEFAULT_3-Cylinder_2-Stage_598ccm.ACMP" />
+    <EmbeddedResource Include="Resources\XSD\VectoDeclarationDefinitions.2.3_DEV.xsd">
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
     <None Include="Utils\VectoVersionCore.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
       <LastGenOutput>VectoVersionCore.cs</LastGenOutput>
diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
index b1202355f3..678357f581 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
@@ -103,7 +103,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				EngineData = engineData,
 				SimulationType = SimulationType.DistanceCycle,
 				Cycle = cycleData,
-				AdvancedAux = BusAuxiliaryInputData.ReadBusAuxiliaries(AdvancedAuxFile, vehicleData)
+				BusAuxiliaries = BusAuxiliaryInputData.ReadBusAuxiliaries(AdvancedAuxFile, vehicleData)
 			};
 			container.RunData = runData;
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
@@ -116,7 +116,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				.AddComponent(new Clutch(container, engineData))
 				.AddComponent(engine);
 
-			var aux = new BusAuxiliariesAdapter(container, runData.AdvancedAux, "Coach",
+			var aux = new BusAuxiliariesAdapter(container, runData.BusAuxiliaries, "Coach",
 				vehicleData.TotalVehicleWeight, engineData.Fuels.First().ConsumptionMap, engineData.IdleSpeed);
 
 			engine.Connect(aux.Port());
-- 
GitLab