From 4e6a285b9d6879400e765389d7a1d664573fdb8c Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 20 Jul 2016 09:07:56 +0200 Subject: [PATCH] create aux component for constant aux demand --- .../EngineeringDataAdapter.cs | 51 +++++++++++++------ 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 8fbeb94159..cfae4d0db7 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -36,6 +36,7 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; @@ -44,7 +45,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.OutputData; using DriverData = TUGraz.VectoCore.Models.SimulationComponent.Data.DriverData; -namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper +namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { public class EngineeringDataAdapter : AbstractSimulationDataAdapter { @@ -180,25 +181,45 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper if (auxInputData.SavedInDeclarationMode) { WarnEngineeringMode("AuxData"); } - return auxInputData.Auxiliaries.Select(a => { - if (a.DemandMap == null) { - throw new VectoSimulationException("Demand Map for auxiliary {0} {1} required", a.ID, a.Technology); - } - if (a.DemandMap.Columns.Count != 3 || a.DemandMap.Rows.Count < 4) { - throw new VectoSimulationException( - "Demand Map for auxiliary {0} {1} has to contain exactly 3 columns and at least 4 rows", a.ID, a.Technology); + switch (a.AuxiliaryType) { + case AuxiliaryDemandType.Mapping: + return CreateMappingAuxiliary(a); + case AuxiliaryDemandType.Constant: + return CreateConstantAuxiliary(a); + default: + throw new VectoException("Auxiliary type {0} not supported!", a.AuxiliaryType); } - return new VectoRunData.AuxData { - ID = a.ID, - Technology = a.Technology, - TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(), - DemandType = AuxiliaryDemandType.Mapping, - Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap) - }; }).Concat(new VectoRunData.AuxData { ID = "", DemandType = AuxiliaryDemandType.Direct }.ToEnumerable()).ToList(); } + private static VectoRunData.AuxData CreateMappingAuxiliary(IAuxiliaryEngineeringInputData a) + { + if (a.DemandMap == null) { + throw new VectoSimulationException("Demand Map for auxiliary {0} {1} required", a.ID, a.Technology); + } + if (a.DemandMap.Columns.Count != 3 || a.DemandMap.Rows.Count < 4) { + throw new VectoSimulationException( + "Demand Map for auxiliary {0} {1} has to contain exactly 3 columns and at least 4 rows", a.ID, a.Technology); + } + return new VectoRunData.AuxData { + ID = a.ID, + Technology = a.Technology, + TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(), + DemandType = AuxiliaryDemandType.Mapping, + Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap) + }; + } + + private static VectoRunData.AuxData CreateConstantAuxiliary(IAuxiliaryEngineeringInputData a) + { + return new VectoRunData.AuxData { + ID = a.ID, + DemandType = AuxiliaryDemandType.Constant, + PowerDemand = a.ConstantPowerDemand + }; + } + internal DriverData CreateDriverData(IDriverEngineeringInputData driver) { if (driver.SavedInDeclarationMode) { -- GitLab