diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index e800a6395a54d26c526ddc0b3ab113f4e670fa96..c7fb3c10c161fd9fa7539d953b89b2596935465d 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -968,9 +968,9 @@ namespace TUGraz.VectoCommon.InputData AmpereSecond Capacity { get; } - bool ConnectorsSubsystemsIncluded { get; } + bool? ConnectorsSubsystemsIncluded { get; } - bool JunctionboxIncluded { get; } + bool? JunctionboxIncluded { get; } Kelvin TestingTemperature { get; } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs index fb0b35237ac147a93e896324d7469df3a123610f..8032df8da45955b3e290a5ace8366df4d5de0fe1 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONBattery.cs @@ -32,8 +32,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public BatteryType BatteryType { get; } AmpereSecond IBatteryPackDeclarationInputData.Capacity => Body.GetEx<double>("Capacity").SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(); - public bool ConnectorsSubsystemsIncluded => Body.ContainsKey("ConnectorsSubsystemsIncluded") && Body.GetEx<bool>("ConnectorsSubsystemsIncluded"); - public bool JunctionboxIncluded => Body.ContainsKey("JunctionboxIncluded") && Body.GetEx<bool>("JunctionboxIncluded"); + public bool? ConnectorsSubsystemsIncluded => Body.ContainsKey("ConnectorsSubsystemsIncluded") && Body.GetEx<bool>("ConnectorsSubsystemsIncluded"); + public bool? JunctionboxIncluded => Body.ContainsKey("JunctionboxIncluded") && Body.GetEx<bool>("JunctionboxIncluded"); public Kelvin TestingTemperature => Body.ContainsKey("TestingTemperature") ? Body.GetEx<double>("TestingTemperature").DegCelsiusToKelvin() diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs index 14f4a797ecf4d15e8aeb7948f6c9c47228bed505..8c61a6e62a875a8d14ff238630b21956f916cad0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs @@ -4,6 +4,7 @@ using System.Xml; using System.Xml.Linq; using TUGraz.IVT.VectoXML; using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces; @@ -117,12 +118,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual BatteryType BatteryType => GetString(XMLNames.REESS_BatteryType).ParseEnum<BatteryType>(); public virtual AmpereSecond Capacity => GetDouble(XMLNames.REESS_RatedCapacity).SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(); - public virtual bool ConnectorsSubsystemsIncluded => GetBool(XMLNames.REESS_ConnectorsSubsystemsIncluded); - public virtual bool JunctionboxIncluded => GetBool(XMLNames.REESS_JunctionboxIncluded); - public virtual Kelvin TestingTemperature => - ElementExists(XMLNames.REESS_TestingTemperature) - ? GetDouble(XMLNames.REESS_TestingTemperature).DegCelsiusToKelvin() : null; + public virtual bool? ConnectorsSubsystemsIncluded => CertificationMethod == CertificationMethod.StandardValues + ? (bool?)null + : GetBool(XMLNames.REESS_ConnectorsSubsystemsIncluded); + + public virtual bool? JunctionboxIncluded => CertificationMethod == CertificationMethod.StandardValues + ? (bool?)null + : GetBool(XMLNames.REESS_JunctionboxIncluded); + + public virtual Kelvin TestingTemperature => CertificationMethod != CertificationMethod.StandardValues + ? GetDouble(XMLNames.REESS_TestingTemperature).DegCelsiusToKelvin() + : null; public virtual TableData InternalResistanceCurve => ReadTableData(XMLNames.REESS_InternalResistanceCurve, XMLNames.REESS_MapEntry, AttributeMappings.InternalResistanceMap); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs index 1c0a89d14ad779d8020ebcb477b45b87f92ef0bd..abc987c8252eca4fad2ccaa595ca2965ff9c588a 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricEnergyStorageType.cs @@ -100,8 +100,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF private XElement GetReess(IBatteryPackDeclarationInputData battery) { + var stdValues = battery.CertificationMethod == CertificationMethod.StandardValues; return new XElement(_vif + XMLNames.ComponentDataWrapper, - new XAttribute(_xsi + XMLNames.XSIType, "BatterySystemDataType"), + new XAttribute(_xsi + XMLNames.XSIType, stdValues ? "BatterySystemStandardValuesDataType" : "BatterySystemDataType"), new XElement(_vif + XMLNames.Component_Manufacturer, battery.Manufacturer), new XElement(_vif + XMLNames.Component_Model, battery.Model), new XElement(_vif + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat()), @@ -113,11 +114,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF new XElement(_vif + XMLNames.Component_AppVersion, battery.AppVersion), new XElement(_vif + XMLNames.REESS_BatteryType, battery.BatteryType.ToString()), new XElement(_vif + XMLNames.REESS_RatedCapacity, battery.Capacity.AsAmpHour.ToXMLFormat(2)), - new XElement(_vif + XMLNames.REESS_ConnectorsSubsystemsIncluded, battery.ConnectorsSubsystemsIncluded), - new XElement(_vif + XMLNames.REESS_JunctionboxIncluded, battery.JunctionboxIncluded), - battery.TestingTemperature == null - ? null - : new XElement(_vif + XMLNames.REESS_TestingTemperature, battery.TestingTemperature.AsDegCelsius.ToXMLFormat(0)), + stdValues ? null : new XElement(_vif + XMLNames.REESS_ConnectorsSubsystemsIncluded, battery.ConnectorsSubsystemsIncluded), + stdValues ? null : new XElement(_vif + XMLNames.REESS_JunctionboxIncluded, battery.JunctionboxIncluded), + stdValues ? null : new XElement(_vif + XMLNames.REESS_TestingTemperature, battery.TestingTemperature.AsDegCelsius.ToXMLFormat(0)), GetOcv(battery.VoltageCurve), GetCurrentLimits(battery.MaxCurrentMap) ); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs index ef1426456a7b83982ee682643c501afd88830eb5..36d5b1acf2c69622a145daf940daa09b15929708 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatterySystemTest.cs @@ -353,8 +353,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent public double? MaxSOC => 0.8; public BatteryType BatteryType { get; } public AmpereSecond Capacity { get; } - public bool ConnectorsSubsystemsIncluded { get; } - public bool JunctionboxIncluded { get; } + public bool? ConnectorsSubsystemsIncluded { get; } + public bool? JunctionboxIncluded { get; } public Kelvin TestingTemperature => null; public TableData InternalResistanceCurve => VectoCSVFile.ReadStream(