From 1eeca8f94deb1001f112ca06eff687f37c472dbc Mon Sep 17 00:00:00 2001
From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at>
Date: Fri, 30 Sep 2022 11:36:13 +0200
Subject: [PATCH] ignore engineering auxiliaries in Electric auxiliaries
 simulation component

---
 .../ComponentData/DrivingCycleDataReader.cs   |  2 +-
 .../DeclarationDataAdapterHeavyLorry.cs       | 10 +++++++++
 .../IDeclarationDataAdapter.cs                |  5 +++--
 ...DeclarationModeHeavyLorryRunDataFactory.cs |  6 +++---
 ...DeclarationModePrimaryBusRunDataFactory.cs |  2 +-
 ...PModeVectoRunDataFactoryHeavyBusPrimary.cs |  4 ++--
 .../Simulation/Impl/PowertrainBuilder.cs      |  5 ++++-
 .../Impl/Auxiliaries/ElectricAuxiliaries.cs   | 21 ++++++++++++++++++-
 8 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs
index de2dac89ed..21ce0a7a1a 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs
@@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 		/// <param name="cycleData">The cycle data.</param>
 		/// <returns></returns>
 		/// <exception cref="VectoException">CycleFile Format is unknown.</exception>
-		private static CycleType DetectCycleType(DataTable cycleData)
+		public static CycleType DetectCycleType(DataTable cycleData)
 		{
 			var cols = cycleData.Columns;
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
index 9b9594f7d9..3ed33b0359 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs
@@ -472,6 +472,16 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry
 				return _vehicleDataAdapter.CreateExemptedVehicleData(vehicle);
 			}
 
+			public override PTOData CreatePTOCycleData()
+			{
+				throw new NotImplementedException();
+			}
+
+			public override PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData)
+			{
+				throw new NotImplementedException();
+			}
+
 			public override ShiftStrategyParameters CreateGearshiftData(double axleRatio, PerSecond engineIdlingSpeed, GearboxType gearboxType, int gearsCount)
 			{
 				throw new NotImplementedException();
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
index 0d51360006..08c27a6ae8 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs
@@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
         //AxleGearData CreateDummyAxleGearData(IGearboxDeclarationInputData gbxData);
 		VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission first, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> keyValuePair, bool allowVocational);
 		RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet);
-		PTOData CreatePTOCycleData();
+
 	}
 
 	public interface ILorryDeclarationDataAdapter : IDeclarationDataAdapter
@@ -48,6 +48,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			IShiftPolygonCalculator shiftPolygonCalc);
 
 		PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData);
+		PTOData CreatePTOCycleData();
 
 
 
@@ -89,7 +90,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			IShiftPolygonCalculator shiftPolygonCalc);
 
 		//RetarderData CreateRetarderData(IRetarderInputData retarderData);
-		PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData);
+		//PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData);
 
 		ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed);
 
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
index 0759c26194..32826432c5 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs
@@ -125,8 +125,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 
 				_ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
 
-				_municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData();
-				
+				_municipalPtoTransmissionData = DataAdapter.CreatePTOCycleData();
+
 
 			}
 
@@ -381,7 +381,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa
 
 				var ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
 
-				 var municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData();
+				var municipalPtoTransmissionData = DataAdapter.CreatePTOCycleData();
 
 				result.PTO = mission.MissionType == MissionType.MunicipalUtility
 					? municipalPtoTransmissionData
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
index 25857d4d88..f651db58dd 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs
@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa
 
 				_retarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData);
 
-				_ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
+				//_ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
 
 
 			}
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
index 7e5b08fe39..917ff48f95 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs
@@ -73,8 +73,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
                 null);
             RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData);
 
-            PTOTransmissionData =
-                DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
+            //PTOTransmissionData =
+            //    DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData);
 
             GearshiftData = DataAdapter.CreateGearshiftData(
                 GearboxData, AxlegearData.AxleGear.Ratio * (AngledriveData?.Angledrive.Ratio ?? 1.0), EngineData.IdleSpeed);
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 868a7393ac..6a2d303a6c 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -772,7 +772,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				var elAux = new ElectricAuxiliaries(container);
 				
 				elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond));
-				elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)));
+				if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) {
+					elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)));
+				}
+				
 				dcdc.Connect(elAux);
 				dcdc.Initialize();
             }
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs
index b22dd00af7..fc7771f7f6 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
@@ -13,6 +14,7 @@ using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.SimulationComponent.Impl.Auxiliaries;
 using TUGraz.VectoCore.OutputData;
+// ReSharper disable UseStringInterpolation
 
 namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 {
@@ -26,6 +28,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 		private IDictionary<string, string> _auxColumnName = new Dictionary<string, string>();
 		private IDictionary<string, Watt> _powerDemands = new Dictionary<string, Watt>();
 
+
+		private HashSet<string> _ignoredIds = new HashSet<string>() {
+			Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_FAN,
+			Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_STP,
+			Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_BASE,
+		};
 		#region Implementation of IElectricAuxPort
 
 
@@ -49,13 +57,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				_auxColumnName.Add(auxId, name); //use column name as ID
 				VehicleContainer.AddAuxiliary(name, name);
 			}
-
+			
 
 			return 0.SI<Watt>();
 		}
 
 		public void AddAuxiliary(VectoRunData.AuxData aux)
 		{
+			if (_ignoredIds.Contains(aux.ID)) {
+				Log.Debug(string.Format("{0} ignored in {1}", aux.ID, nameof(ElectricAuxiliaries)));
+				return;
+			}
+		
+
 			if (aux.DemandType == AuxiliaryDemandType.Constant) {
 				_auxData.Add(aux.ID, (dataBus) => aux.PowerDemandElectric);
 			}else if (aux.DemandType == AuxiliaryDemandType.Dynamic) {
@@ -65,6 +79,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 
 		public void AddAuxiliary(IAuxDemand aux)
 		{
+			if (_ignoredIds.Contains(aux.AuxID))
+			{
+				Log.Debug(string.Format("{0} ignored in {1}", aux.AuxID, nameof(ElectricAuxiliaries)));
+				return;
+			}
 			_auxData.Add(aux.AuxID, aux.PowerDemand);
 		}
 
-- 
GitLab