From c2a3fe134c714a0e242eb1d3aced9c40c56236e7 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 27 Jul 2022 17:52:22 +0200 Subject: [PATCH] updating repo --- .../AbstractCustomerReport.cs | 8 ++++ .../CIFNinjectModule.cs | 4 +- .../CIFWriter/ComponentGroupWriters.cs | 48 +++++++++++++------ .../CIFWriter/VehicleGroups.cs | 9 ++-- .../CIFWriter/VehicleWriter.cs | 6 +++ .../ICustomerInformationFileFactory.cs | 1 + .../AbstractManufacturerReport.cs | 7 +++ .../Common/GeneralVehicleOutputXmlGroup.cs | 5 +- .../Common/HEV-VehicleSequenceGroup.cs | 3 +- .../Components/MRFREESSSpecificationsType.cs | 5 +- .../Components/MRFTorqueLimitationsType.cs | 7 ++- .../VIFBoostingLimitationsType.cs | 5 +- .../VIFElectricMachineSystemMeasuredType.cs | 16 +++---- .../VIFTorqueConverterType.cs | 28 +---------- 14 files changed, 89 insertions(+), 63 deletions(-) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs index eba4c7d321..a75fa638f2 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/AbstractCustomerReport.cs @@ -26,9 +26,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput"); public static XNamespace Cif_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9"); + public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"); + + protected XElement Vehicle { get; set; } protected XElement Results { get; set; } + protected XElement InputDataIntegrity { get; set; } + public abstract string OutputDataType { get; } private bool _ovc = false; @@ -52,6 +57,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation InitializeVehicleData(modelData.InputData); _ovc = modelData.VehicleData.Ocv; Results = new XElement(Cif_0_9 + "Results"); + InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature, + modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash)); } public XDocument Report { get; protected set; } @@ -75,6 +82,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(Cif + XMLNames.Report_DataWrap, new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"), Vehicle, + InputDataIntegrity, new XElement(Cif_0_9 + XMLNames.Report_ResultData_Signature, resultSignature), Results, XMLHelper.GetApplicationInfo(Cif_0_9)) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs index c59d4199e2..5014557e16 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFNinjectModule.cs @@ -289,8 +289,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #region ComponentGroups Bind<IReportOutputGroup>().To<EngineGroup>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetEngineGroup()); - Bind<IReportOutputGroup>().To<TransmissionGroup>().When(AccessedViaCIFFactory) + Bind<IReportOutputGroup>().To<TransmissionGroupWithGearbox>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroup()); + Bind<IReportOutputGroup>().To<TransmissionGroupWithoutGearbox>().When(AccessedViaCIFFactory) + .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroupNoGearbox()); Bind<IReportOutputGroup>().To<AxleWheelsGroup>().When(AccessedViaCIFFactory) .NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetAxleWheelsGroup()); Bind<IReportOutputGroup>().To<ElectricMachineGroup>().When(AccessedViaCIFFactory) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs index f64ea0457a..6cf94218d5 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/ComponentGroupWriters.cs @@ -9,6 +9,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; using TUGraz.VectoCore.Utils; @@ -48,9 +49,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation } - public class TransmissionGroup : AbstractCIFGroupWriter + public class TransmissionGroupWithGearbox : AbstractCIFGroupWriter { - public TransmissionGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + public TransmissionGroupWithGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } #region Overrides of AbstractCIFGroupWriter @@ -67,6 +68,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation #endregion } + public class TransmissionGroupWithoutGearbox : AbstractCIFGroupWriter + { + public TransmissionGroupWithoutGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } + + #region Overrides of AbstractCIFGroupWriter + + public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData) + { + var gearbox = inputData.JobInputData.Vehicle.Components.GearboxInputData; + return new List<XElement>() { + new XElement(_cif + "NrOfGears", 1) + }; + } + + #endregion + } + public class AxleWheelsGroup : AbstractCIFGroupWriter { public AxleWheelsGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { } @@ -137,7 +155,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation voltageLevels = new List<IElectricMotorVoltageLevel>(); var propulsionElectricMachines = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries .Where(e => e.Position != PowertrainPosition.GEN); - totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower)); + totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower * e.Count)); var groupedVoltageLevels = propulsionElectricMachines .SelectMany(electricMachine => electricMachine.ElectricMachine.VoltageLevels).GroupBy((level => level.VoltageLevel)); foreach (IGrouping<Volt, IElectricMotorVoltageLevel> electricMotorVoltageLevels in groupedVoltageLevels) { @@ -145,7 +163,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation } } - result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW"))); + result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW", 0))); var voltageLevelsXElement = new XElement(_cif + "VoltageLevels"); result.Add(voltageLevelsXElement); @@ -183,31 +201,31 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation .Select(es => es.REESSPack as ISuperCapDeclarationInputData).ToArray(); var totalStorageCapacity = - (batteries.Length > 0 ? batteries.Sum(bp => bp.Capacity) : 0.SI<AmpereSecond>()) + - (capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<AmpereSecond>()); + (batteries.Length > 0 ? batteries.Sum(bp => bp.TotalStorageCapacity()) : 0.SI<WattSecond>()) + + (capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<WattSecond>()); var totalUsableCapacity = (batteries.Length > 0 ? batteries.Sum(bp => bp.TotalUsableCapacityInSimulation()) - : 0.SI<AmpereSecond>()) + + : 0.SI<WattSecond>()) + (capacitors.Length > 0 ? capacitors.Sum(cap => GetTotalUsableCapacityInSimulation(cap)) - : 0.SI<AmpereSecond>()); + : 0.SI<WattSecond>()); return new List<XElement>() { - new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("Ah", 0)), - new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("Ah", 0)) + new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("kWh", 0)), + new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0)) }; } - private AmpereSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap) + private WattSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap) { return GetStorageCapacity(cap) * 0.8; } - private AmpereSecond GetStorageCapacity(ISuperCapDeclarationInputData cap) + private WattSecond GetStorageCapacity(ISuperCapDeclarationInputData cap) { - var voltageRange = cap.MaxVoltage - cap.MinVoltage; - var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0; - return cap.Capacity * voltageRange * voltageRange / 2.0 / avgVoltage; + var voltageRange = cap.MaxVoltage - cap.MinVoltage; + //var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0; + return cap.Capacity * voltageRange * voltageRange / 2.0; } #endregion diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs index a37ea8e215..6bd13d560e 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleGroups.cs @@ -8,6 +8,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; using TUGraz.VectoCore.Utils; @@ -35,7 +36,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")), - new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, vehicleData.VehicleCategory.ToXMLFormat()) + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData)) }; return result; @@ -54,7 +55,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()), new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")), - new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, consolidatedVehicleData.VehicleCategory.ToXMLFormat()) + new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData)) }; return result; } @@ -168,7 +169,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + "OffVehicleChargingCapability", ovCc) }); if (ovCc) { - result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW"))); + result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1))); } return result; } @@ -193,7 +194,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation }); if (ovCc) { - result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW"))); + result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1))); } return result; } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs index 1ccf10426a..21785ffcfd 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs @@ -153,6 +153,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetEngineGroup().GetElements(inputData), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), GetRetarder(inputData), GetAxleRatio(inputData), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), @@ -178,6 +179,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetEngineGroup().GetElements(inputData), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), _cifFactory.GetLorryAuxGroup().GetElements(inputData) ); @@ -200,6 +202,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetEngineGroup().GetElements(inputData), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), GetRetarder(inputData), GetAxleRatio(inputData, true), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), @@ -249,6 +252,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), GetRetarder(inputData), GetAxleRatio(inputData), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), @@ -273,6 +277,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), _cifFactory.GetLorryAuxGroup().GetElements(inputData) @@ -295,6 +300,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation _cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"), _cifFactory.GetElectricMachineGroup().GetElements(inputData), _cifFactory.GetREESSGroup().GetElements(inputData), + _cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData), GetRetarder(inputData), GetAxleRatio(inputData, true), _cifFactory.GetAxleWheelsGroup().GetElements(inputData), diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs index 0d638e4fa4..b233e2e5cc 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/ICustomerInformationFileFactory.cs @@ -42,6 +42,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter(); IReportOutputGroup GetEngineGroup(); IReportOutputGroup GetTransmissionGroup(); + IReportOutputGroup GetTransmissionGroupNoGearbox(); IReportOutputGroup GetAxleWheelsGroup(); IReportOutputGroup GetLorryAuxGroup(); IReportOutputGroup GetCompletedBusAuxGroup(); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs index ddeed612ee..7fd5921e25 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/AbstractManufacturerReport.cs @@ -24,6 +24,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput"); public static XNamespace Mrf_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9"); + public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#"); protected readonly IManufacturerReportFactory _mRFReportFactory; @@ -33,6 +34,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. protected XElement Results { get; set; } protected XElement Vehicle { get; set; } + protected XElement InputDataIntegrity { get; set; } + protected XElement Signature { get; set; } private VectoRunData _modelData; @@ -58,11 +61,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. _ovc = modelData.VehicleData.Ocv; _modelData = modelData; Results = new XElement(Mrf_0_9 + XMLNames.Report_Results); + InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature, + modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash)); } public XDocument Report { get; protected set; } private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>(); + public void WriteResult(XMLDeclarationReport.ResultEntry resultValue) { @@ -82,6 +88,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. new XElement(Mrf + XMLNames.Report_DataWrap, new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"), Vehicle, + InputDataIntegrity, Results, XMLHelper.GetApplicationInfo(Mrf_0_9)) ) diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputXmlGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputXmlGroup.cs index fffc1e7844..3524d899bd 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputXmlGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/GeneralVehicleOutputXmlGroup.cs @@ -4,10 +4,13 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter @@ -40,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()), new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()), new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)), - new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, vehicleData.VehicleCategory.ToXMLFormat()), + new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData)), }; } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs index abf8260582..ebf83391a0 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/HEV-VehicleSequenceGroup.cs @@ -7,6 +7,7 @@ using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter.Vehicle.Lorry { @@ -24,7 +25,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, vehicleData.DualFuelVehicle), new XElement(_mrf + "HEVArchitecture", vehicleData.ArchitectureID.GetLabel()), new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev), - vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ToXMLFormat(0)) : null, + vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null, }; result.Add(_mrfFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS)); result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle)); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs index f749dd7a97..b467210b32 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFREESSSpecificationsType.cs @@ -11,6 +11,7 @@ using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components { @@ -35,8 +36,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. new XElement(_mrf + XMLNames.Component_CertificationNumber, battery.CertificationNumber), new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, battery.DigestValue?.DigestValue ?? ""), new XElement(_mrf + XMLNames.BusAux_ElectricSystem_NominalVoltage, BatterySOCReader.Create(battery.VoltageCurve).Lookup(0.5).ToXMLFormat(0)), - new XElement(_mrf + "TotalStorageCapacity", battery.Capacity.AsAmpHour.ToXMLFormat(0)), - new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().AsAmpHour), + new XElement(_mrf + "TotalStorageCapacity", battery.TotalStorageCapacity().ValueAsUnit("kWh", 0)), + new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().ValueAsUnit("kWh"), 0), new XElement(_mrf + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat()) ) ); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs index 55e1b58109..628de75510 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTorqueLimitationsType.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Xml.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter { @@ -23,8 +24,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. var maxEngineTorque = inputData.JobInputData.Vehicle.Components.EngineInputData.MaxTorqueDeclared; foreach (var torqueLimitInputData in inputData.JobInputData.Vehicle.TorqueLimits) { - - torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit", new XAttribute("Gear", torqueLimitInputData.Gear), ((torqueLimitInputData.MaxTorque/maxEngineTorque)*100).ToXMLFormat(0))); + var value = (torqueLimitInputData.MaxTorque / maxEngineTorque).Value(); + torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit", + new XAttribute("Gear", torqueLimitInputData.Gear), value.ValueAsUnit("%", 0) + )); } return torqueLimitsElement; diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs index 32e286734b..7de33a3fac 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFBoostingLimitationsType.cs @@ -24,8 +24,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF foreach (DataRow row in boostingLimitations.Rows) { boostingLimitationsXElement.Add(new XElement(_v24 + XMLNames.BoostingLimitation_Entry, - new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]), - new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]))); + new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]), + new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]) + )); } return boostingLimitationsXElement; diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs index 74879bb885..a050bd94ec 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFElectricMachineSystemMeasuredType.cs @@ -71,15 +71,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF foreach (var voltageLevel in voltageLevels) { var entry = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel, - certificationMethod == CertificationMethod.StandardValues - ? null - : new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0)), + voltageLevels.Count > 1 + ? new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0)) + : null, new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageLevel.ContinuousTorque.ToXMLFormat(2)), - new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)), - new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, voltageLevel.OverloadTorque.ToXMLFormat(2)), - new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, voltageLevel.OverloadTestSpeed.ToXMLFormat(2)), - new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, voltageLevel.OverloadTime.ToXMLFormat(2)), - GetMaxTorqueCurve(voltageLevel.FullLoadCurve) + new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, + voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, + voltageLevel.OverloadTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, + voltageLevel.OverloadTestSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, + voltageLevel.OverloadTime.ToXMLFormat(2)), GetMaxTorqueCurve(voltageLevel.FullLoadCurve) ); result.Add(entry); } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs index 3b175196b5..715819fe9e 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFTorqueConverterType.cs @@ -36,36 +36,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF torque.CertificationNumber), new XElement(_vif + XMLNames.Component_Date, XmlConvert.ToString(torque.Date, XmlDateTimeSerializationMode.Utc)), - new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion), - GetCharacteristics(torque.TCData) + new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion) )); } - - private XElement GetCharacteristics(DataTable tcData) - { - if(tcData == null) - return null; - - var entries = new List<XElement>(); - for (int r = 0; r < tcData.Rows.Count; r++) { - - var speedRatio = tcData.Rows[r][TorqueConverterDataReader.Fields.SpeedRatio]; - var torqueRatio = tcData.Rows[r][TorqueConverterDataReader.Fields.TorqueRatio]; - var inputTorqueRef = tcData.Rows[r][TorqueConverterDataReader.Fields.CharacteristicTorque]; - - var xElement = new XElement(_vif + XMLNames.TorqueConverter_Characteristics_Entry, - new XAttribute(XMLNames.TorqueConverterData_SpeedRatio_Attr, speedRatio), - new XAttribute(XMLNames.TorqueConverterData_TorqueRatio_Attr, torqueRatio), - new XAttribute(XMLNames.TorqueConverterDataMapping_InputTorqueRef_Attr, inputTorqueRef)); - - entries.Add(xElement); - } - - return new XElement(_vif + XMLNames.TorqueConverter_Characteristics, - entries.Select(x => x)); - } - #endregion } } -- GitLab