From fd2d970466d26fa6b5fa53d8eca1066147fb8fdd Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Wed, 10 May 2023 17:57:23 +0200
Subject: [PATCH] refactoring bus aux adapter - pneumatic system, electric
 system.

---
 .../AuxiliaryDataAdapter.cs                   | 25 +++++++++------
 .../PrimaryBus/PrimaryBusSimulation.cs        | 32 +++++++++----------
 2 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/AuxiliaryDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/AuxiliaryDataAdapter.cs
index e5ddc39695..a0810807a8 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/AuxiliaryDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/AuxiliaryDataAdapter.cs
@@ -1044,7 +1044,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 				ElectricalUserInputsConfig = CreateElectricsUserInputsConfig(
 					primaryVehicle, completedVehicle, mission, actuations, runData.VehicleData.VehicleClass),
 				PneumaticUserInputsConfig = CreatePneumaticUserInputsConfig(
-					primaryBusAuxiliaries, completedVehicle),
+					primaryVehicle, completedVehicle),
 				PneumaticAuxillariesConfig = base.CreatePneumaticAuxConfig(runData.Retarder.Type),
 				Actuations = actuations,
 				SSMInputsCooling = ssmCooling,
@@ -1143,14 +1143,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 
 
 
-		private PneumaticUserInputsConfig CreatePneumaticUserInputsConfig(IBusAuxiliariesDeclarationData primaryBusAuxiliaries,
-			IVehicleDeclarationInputData completedVehicle)
+		private PneumaticUserInputsConfig CreatePneumaticUserInputsConfig(IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle)
 		{
-			return new PneumaticUserInputsConfig
+			var primaryBusAuxiliaries = primaryVehicle.Components.BusAuxiliaries;
+
+            return new PneumaticUserInputsConfig
 			{
 				CompressorMap = DeclarationData.BusAuxiliaries.GetCompressorMap(primaryBusAuxiliaries.PneumaticSupply),
 				CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency,
-				CompressorGearRatio = completedVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
+				CompressorGearRatio = primaryVehicle.VehicleType == VectoSimulationJobType.BatteryElectricVehicle
 					? 0 : primaryBusAuxiliaries.PneumaticSupply.Ratio,
 				SmartAirCompression = primaryBusAuxiliaries.PneumaticSupply.SmartAirCompression,
 				SmartRegeneration = primaryBusAuxiliaries.PneumaticSupply.SmartRegeneration,
@@ -1410,12 +1411,16 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 			return new Dictionary<string, AuxiliaryDataAdapter.ElectricConsumerEntry>();
 		}
 
-		protected virtual Dictionary<string, AuxiliaryDataAdapter.ElectricConsumerEntry> GetElectricAuxConsumersPrimary(Mission mission, IVehicleDeclarationInputData vehicleData, VehicleClass vehicleClass, IBusAuxiliariesDeclarationData busAuxPrimary)
+		protected virtual Dictionary<string, ElectricConsumerEntry> GetElectricAuxConsumersPrimary(Mission mission,
+			IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle,
+			VehicleClass vehicleClass)
 		{
-			var retVal = new Dictionary<string, AuxiliaryDataAdapter.ElectricConsumerEntry>();
+			var busAuxPrimary = primaryVehicle.Components.BusAuxiliaries;
+
+            var retVal = new Dictionary<string, AuxiliaryDataAdapter.ElectricConsumerEntry>();
 			var spPower = DeclarationData.SteeringPumpBus.LookupElectricalPowerDemand(
 				mission.MissionType, busAuxPrimary.SteeringPumpTechnology,
-				vehicleData.Length ?? mission.BusParameter.VehicleLength);
+				completedVehicle.Length ?? mission.BusParameter.VehicleLength);
 			retVal[Constants.Auxiliaries.IDs.SteeringPump] = new AuxiliaryDataAdapter.ElectricConsumerEntry
 			{
 				ActiveDuringEngineStopStandstill = false,
@@ -1423,7 +1428,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 				Current = spPower / Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
 			};
 
-			var fanPower = vehicleData.ArchitectureID.IsBatteryElectricVehicle()
+			var fanPower = primaryVehicle.ArchitectureID.IsBatteryElectricVehicle()
 				? 0.SI<Watt>()
 				: DeclarationData.Fan.LookupElectricalPowerDemand(
 					vehicleClass, mission.MissionType, busAuxPrimary.FanTechnology);
@@ -1443,7 +1448,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 			var currentDemand = GetElectricConsumers(mission, completedVehicle, actuations, vehicleClass);
 
 			// add electrical steering pump or electric fan defined in primary vehicle
-			foreach (var entry in GetElectricAuxConsumersPrimary(mission, completedVehicle, vehicleClass, primaryVehicle.Components.BusAuxiliaries))
+			foreach (var entry in GetElectricAuxConsumersPrimary(mission, primaryVehicle, completedVehicle, vehicleClass))
 			{
 				currentDemand[entry.Key] = entry.Value;
 			}
diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
index 53907efaa2..519b39ab4b 100644
--- a/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
+++ b/VectoCore/VectoCoreTest/Integration/Declaration/PrimaryBus/PrimaryBusSimulation.cs
@@ -34,7 +34,7 @@ public class PrimaryBusSimulation
 
 	private const string BASE_DIR_COMPLETED = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus";
 	private const string BASE_DIR_VIF = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\VIF";
-    private StandardKernel _kernel;
+	private StandardKernel _kernel;
 	private IXMLInputDataReader _xmlReader;
 
 	[OneTimeSetUp]
@@ -49,7 +49,7 @@ public class PrimaryBusSimulation
 	}
 
 
-    [
+	[
 	TestCase(@"PrimaryBus/Conventional/primary_heavyBus group41_nonSmart.xml", 0, TestName = "2nd Amendment PrimaryBus Conventional"),
 	TestCase(@"PrimaryBus/PEV/PEV_primaryBus_AMT_E2.xml", 0, TestName = "2nd Amendment PrimaryBus PEV E2"),
 
@@ -62,7 +62,7 @@ public class PrimaryBusSimulation
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCoach_P2_HEV_AMT_CM_BCVC.xml", 7, TestName = "2nd Amendment PrimaryBus Coach P-HEV P2 AMT_CM_BCVC stpr, InterUrban_Ref_Load"),
 
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCoach_P2_HEV_AMT_Conv.xml", 0, TestName="2nd Amendment PrimaryBus Coach P-HEV P2 AMT"),
-    TestCase(@"PrimaryBus/P-HEV/PrimaryCoach_P2_HEV_Base_AMT.xml", 0, TestName = "2nd Amendment PrimaryBus Coach P-HEV P2 Base AMT"),
+	TestCase(@"PrimaryBus/P-HEV/PrimaryCoach_P2_HEV_Base_AMT.xml", 0, TestName = "2nd Amendment PrimaryBus Coach P-HEV P2 Base AMT"),
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCoach_P2_HEV_AMT_OVC.xml", 0, TestName = "2nd Amendment PrimaryBus Coach P-HEV P2 AMT OVC"),
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCityBus_P1_HEV_Base_AT.xml", 0, TestName = "2nd Amendment PrimaryBus CityBus P-HEV P1 Base AT"),
 	TestCase(@"PrimaryBus/P-HEV/PrimaryCityBus_P1_HEV_AT_BD_BCVC.xml", 0, TestName= "2nd Amendment PrimaryBus CityBus P-HEV P1 Base AT - no TC"),
@@ -89,14 +89,14 @@ public class PrimaryBusSimulation
 	TestCase(@"PrimaryCityBus_IEPC-S_Base.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1,                 TestName = "2nd Amendment CompletedBus CityBus HEV IEPC-S"),
 	TestCase(@"exempted_primary_heavyBus.RSLT_VIF.xml", @"exempted_completedBus_input_full.xml", 1,    TestName = "2nd Amendment CompletedBus Exempted"),
 	]
-    public void CompletedBusSimulationTest(string vifFile, string completed, int runIdx)
+	public void CompletedBusSimulationTest(string vifFile, string completed, int runIdx)
 	{
 		var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed));
 
 		var finalVif = CreateCompletedVIF(completedJob);
 
 		//RunSimulationPrimary(finalVif, runIdx);
-    }
+	}
 
 	[
 		TestCase(@"PrimaryBus/Conventional/primary_heavyBus group41_nonSmart.xml", @"Conventional_completedBus_2.xml", 0, TestName = "2nd Amendment SingleBus Conventional"),
@@ -123,12 +123,12 @@ public class PrimaryBusSimulation
 	private void RunSimulationSingle(string jobFile, string completed, int runIdx)
 	{
 		var completedJob = GenerateJsonJobSingleBus(Path.Combine(BASE_DIR, jobFile), Path.Combine(BASE_DIR_COMPLETED, completed));
-        //var filePath = Path.Combine(BASE_DIR, jobFile);
+		//var filePath = Path.Combine(BASE_DIR, jobFile);
 		var dataProvider = JSONInputDataFactory.ReadJsonJob(completedJob);
 		var fileWriter = new FileOutputWriter(completedJob);
 		var simFactory = _kernel.Get<ISimulatorFactoryFactory>();
 
-        var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
+		var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
 		//runsFactory.WriteModalResults = true;
 		runsFactory.SerializeVectoRunData = true;
 		var jobContainer = new JobContainer(new SummaryDataContainer(fileWriter)) { };
@@ -153,7 +153,7 @@ public class PrimaryBusSimulation
 
 		PrintRuns(jobContainer, fileWriter);
 		PrintFiles(fileWriter);
-    }
+	}
 
 	private string GenerateJsonJobSingleBus(string primary, string completed)
 	{
@@ -177,7 +177,7 @@ public class PrimaryBusSimulation
 		var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented);
 		File.WriteAllText(path, str);
 		return path;
-    }
+	}
 
 	public string CreateCompletedVIF(string jobFile)
 	{
@@ -204,9 +204,9 @@ public class PrimaryBusSimulation
 		//PrintRuns(jobContainer, fileWriter);
 		PrintFiles(fileWriter);
 		return fileWriter.GetWrittenFiles()[ReportType.DeclarationReportMultistageVehicleXML];
-    }
+	}
 
-    public void RunSimulationPrimary(string jobFile, int runIdx)
+	public void RunSimulationPrimary(string jobFile, int runIdx)
 	{
 		var filePath = Path.Combine(BASE_DIR, jobFile);
 		var dataProvider = _xmlReader.CreateDeclaration(filePath);
@@ -223,9 +223,9 @@ public class PrimaryBusSimulation
 		} else {
 			var run = runsFactory.SimulationRuns().Skip(runIdx).First();
 			jobContainer.AddRun(run);
-            TestContext.Progress.WriteLine($"{run.CycleName} - {run.RunSuffix}");
+			TestContext.Progress.WriteLine($"{run.CycleName} - {run.RunSuffix}");
 			var expectedResults = 1;
-            if (dataProvider.JobInputData.Vehicle.OvcHev && !dataProvider.JobInputData.Vehicle.VehicleType.IsOneOf(
+			if (dataProvider.JobInputData.Vehicle.OvcHev && !dataProvider.JobInputData.Vehicle.VehicleType.IsOneOf(
 					VectoSimulationJobType.BatteryElectricVehicle, 
 					VectoSimulationJobType.IEPC_E)) {
 				var run2 = runsFactory.SimulationRuns().Skip(runIdx + 1).First();
@@ -255,7 +255,7 @@ public class PrimaryBusSimulation
 	{
 		var len = expected.Length - ignoreEnd;
 
-        var expectedWithoutSuffix = expected.Substring(0, len);
+		var expectedWithoutSuffix = expected.Substring(0, len);
 		var actualWithoutSuffix = actual.Substring(0, len);
 		Assert.AreEqual(expectedWithoutSuffix, actualWithoutSuffix);
 	}
@@ -303,7 +303,7 @@ public class PrimaryBusSimulation
 	}
 
 
-    private string GenerateJsonJobCompletedBus(string vif, string completeBusInput)
+	private string GenerateJsonJobCompletedBus(string vif, string completeBusInput)
 	{
 		var subDirectory = Path.GetDirectoryName(completeBusInput);
 
@@ -327,7 +327,7 @@ public class PrimaryBusSimulation
 		return path;
 	}
 
-    private void PrintRuns(JobContainer jobContainer, FileOutputWriter fileWriter = null)
+	private void PrintRuns(JobContainer jobContainer, FileOutputWriter fileWriter = null)
 	{
 		foreach (var keyValuePair in jobContainer.GetProgress()) {
 			TestContext.WriteLine($"{keyValuePair.Key}: {keyValuePair.Value.CycleName} {keyValuePair.Value.RunName} {keyValuePair.Value.Error?.Message}");
-- 
GitLab