From 25552d846534fd18da2151516a44dcd729e31e09 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 2 Aug 2022 16:24:38 +0200
Subject: [PATCH] adapting input data: set OVC to true for PEV, correct writing
 reports

---
 ...larationCompletedBusVehicleDataProvider.cs |  6 +++
 ...eclarationHeavyLorryVehicleDataProvider.cs |  9 +++++
 ...clarationMediumLorryVehicleDataProvider.cs |  8 ++++
 ...eclarationPrimaryBusVehicleDataProvider.cs |  9 +++++
 .../Common/GeneralVehicleOutputXmlGroup.cs    |  2 +
 .../Common/PEV-VehicleSequenceGroup .cs       |  3 +-
 .../Components/MRFBusAuxiliaryTypes.cs        | 33 ++++++++++-------
 .../Components/MRFTransmissionType.cs         |  1 +
 .../MRFVehicleWriter.cs                       |  2 +
 .../Resources/XSD/VectoOutputCustomer.0.9.xsd | 33 ++++++++++++++++-
 .../XSD/VectoOutputManufacturer.0.9.xsd       | 37 ++++++++++---------
 .../HeavyLorry/IEPC_heavyLorry.xml            |  3 +-
 .../HeavyLorry/PEV_heavyLorry_AMT_E2.xml      |  3 +-
 .../HeavyLorry/PEV_heavyLorry_APT-N_E2.xml    |  3 +-
 .../HeavyLorry/PEV_heavyLorry_E3.xml          |  3 +-
 .../HeavyLorry/PEV_heavyLorry_E4.xml          |  3 +-
 .../MediumLorry/IEPC_mediumLorry.xml          |  3 +-
 .../MediumLorry/PEV_mediumLorry_AMT_E2.xml    |  3 +-
 .../PEV_mediumLorry_AMT_E2_EM_Std.xml         |  3 +-
 .../MediumLorry/PEV_mediumLorry_APT-N_E2.xml  |  3 +-
 .../MediumLorry/PEV_mediumLorry_E3.xml        |  3 +-
 .../MediumLorry/PEV_mediumLorry_E4.xml        |  3 +-
 .../PrimaryBus/IEPC_primaryBus.xml            |  3 +-
 .../PrimaryBus/PEV_primaryBus_AMT_E2.xml      |  3 +-
 .../PrimaryBus/PEV_primaryBus_E3.xml          |  3 +-
 .../PrimaryBus/PEV_primaryBus_E4.xml          |  3 +-
 VectoCore/VectoCoreTest/VectoCoreTest.csproj  |  3 +-
 .../CIF_MockupResults_Conv_Bus.xml            |  1 +
 .../CIF_MockupResults_Conv_Lorry.xml          |  1 +
 .../CIF_MockupResults_OVC-HEV_Bus.xml         |  1 +
 .../CIF_MockupResults_OVC-HEV_Lorry.xml       |  1 +
 .../CIF_MockupResults_PEV_Bus.xml             |  1 +
 .../CIF_MockupResults_PEV_Lorry.xml           |  1 +
 .../CIF_MockupResults_non-OVC-HEV_Bus.xml     |  1 +
 .../CIF_MockupResults_non-OVC-HEV_Lorry.xml   |  1 +
 35 files changed, 150 insertions(+), 49 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
index 11204f0183..591861cd97 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationCompletedBusVehicleDataProvider.cs
@@ -202,6 +202,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		public XMLDeclarationHevCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -226,6 +229,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			XMLHelper.CombineNamespace(NAMESPACE_URI.NamespaceName, XSD_TYPE);
 
 		public XMLDeclarationIepcCompletedBusDataProviderV24(IXMLDeclarationJobInputData jobData, XmlNode xmlNode, string sourceFile) : base(jobData, xmlNode, sourceFile) { }
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
index adb09b293f..386fc46184 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationHeavyLorryVehicleDataProvider.cs
@@ -88,10 +88,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		#endregion
 
+		public override bool HybridElectricHDV => true;
+
 		public override VectoSimulationJobType VehicleType
 		{
 			get => VectoSimulationJobType.ParallelHybridVehicle;
 		}
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -124,6 +127,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		{
 			get => VectoSimulationJobType.SerialHybridVehicle;
 		}
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -234,6 +240,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		{
 			get => VectoSimulationJobType.SerialHybridVehicle;
 		}
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
index 4d6ee26359..e31c7547c9 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationMediumLorryVehicleDataProvider.cs
@@ -116,6 +116,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 
 		#endregion
 
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -144,6 +146,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override XmlElement PTONode => null;
 
 		#endregion
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -243,6 +248,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		#endregion
 
 		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
index a06e721392..909afc0e98 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/v24/XMLDeclarationPrimaryBusVehicleDataProvider.cs
@@ -116,6 +116,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 			: base(jobData, xmlNode, sourceFile) { }
 
 		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.ParallelHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -138,6 +141,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		public override IList<ITorqueLimitInputData> TorqueLimits => null;
 
 		public override VectoSimulationJobType VehicleType => VectoSimulationJobType.SerialHybridVehicle;
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 	// ---------------------------------------------------------------------------------------
@@ -218,6 +224,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider.v24
 		#endregion
 
 		#endregion
+
+		public override bool HybridElectricHDV => true;
+
 	}
 
 
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 3524d899bd..7f9f780de9 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
@@ -44,6 +44,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				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, DeclarationData.GetVehicleGroupGroup(vehicleData)),
+				new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
+
 			};
 		}
 
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs
index 4bd4d0813d..2b0c365285 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-VehicleSequenceGroup .cs	
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportGroupWriter/Common/PEV-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
 {
@@ -23,7 +24,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			{
 				new XElement(_mrf + "PEVArchitecture", vehicleData.ArchitectureID.GetLabel()),
 				new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev),
-				vehicleData.MaxChargingPower != null ? new XElement(_mrf + "OffVehicleChargingMaxPower") : null,
+				vehicleData.MaxChargingPower != null ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null,
 			};
 			result.Add(_mrfFactory.GetPEVADASType().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/MRFBusAuxiliaryTypes.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs
index 04123cf28c..8ed81eef45 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFBusAuxiliaryTypes.cs
@@ -313,15 +313,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 			var maxAlternatorPower = auxData.ElectricSupply.GetMaxAlternatorPower();
 			var electricStorageCapacity =
-				auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity);
+				auxData.ElectricSupply.ElectricStorage?.Sum(electricStorage => electricStorage.ElectricStorageCapacity) ?? 0.SI<WattSecond>();
 			return new XElement(_mrf + XMLNames.BusAux_ElectricSystem,
 				new XElement(_mrf + XMLNames.BusAux_ElectricSystem_AlternatorTechnology,
 					auxData.ElectricSupply.AlternatorTechnology.ToXMLFormat()),
-				(auxData.ElectricSupply.AlternatorTechnology == AlternatorType.None || maxAlternatorPower == null)
-					? null
-					: new XElement(_mrf + "MaxAlternatorPower", maxAlternatorPower.ToXMLFormat(0)),
+				(auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart
+					? new XElement(_mrf + "MaxAlternatorPower", maxAlternatorPower.ToXMLFormat(0))
+					: null),
 
-			auxData.ElectricSupply.ElectricStorage == null || electricStorageCapacity == null ? null : new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat()));
+				auxData.ElectricSupply.AlternatorTechnology == AlternatorType.Smart
+					? new XElement(_mrf + "ElectricStorageCapacity", electricStorageCapacity.ToXMLFormat())
+					: null);
 		}
 
 		#endregion
@@ -352,10 +354,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 
 		#region Implementation of IMRFBusAuxiliariesType
 
-		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		public virtual XElement GetElement(IBusAuxiliariesDeclarationData auxData)
 		{
 			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
-				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, auxData.PneumaticSupply.CompressorDrive.GetLabel()),
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)),
 				new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)),
 
 				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartcompressionSystem, auxData.PneumaticSupply.SmartAirCompression),
@@ -365,19 +367,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 			);
 		}
 
+		protected virtual string GetPneumaticSystemTechnology(IBusAuxiliariesDeclarationData auxData)
+		{
+			return $"{auxData.PneumaticSupply.CompressorSize}, {auxData.PneumaticSupply.CompressorDrive.GetLabel()}, clutch: {auxData.PneumaticSupply.Clutch}";
+		}
+
 		#endregion
 	}
 
-	internal class MRFPrimaryBusPneumaticSystemType_HEV_S : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	internal class MRFPrimaryBusPneumaticSystemType_HEV_S : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px
 	{
 		public MRFPrimaryBusPneumaticSystemType_HEV_S(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
 
 		#region Implementation of IMRFBusAuxiliariesType
 
-		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		public override XElement GetElement(IBusAuxiliariesDeclarationData auxData)
 		{
 			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
-				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, auxData.PneumaticSupply.CompressorDrive.GetLabel()),
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)),
 				new XElement(_mrf + XMLNames.Bus_CompressorRatio, auxData.PneumaticSupply.Ratio.ToXMLFormat(3)),
 				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration),
 				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()),
@@ -388,16 +395,16 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 		#endregion
 	}
 
-	internal class MRFPrimaryBusPneumaticSystemType_PEV_IEPC : AbstractMrfXmlType, IMRFBusAuxiliariesType
+	internal class MRFPrimaryBusPneumaticSystemType_PEV_IEPC : MRFPrimaryBusPneumaticSystemType_Conventional_Hev_Px
 	{
 		public MRFPrimaryBusPneumaticSystemType_PEV_IEPC(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { }
 
 		#region Implementation of IMRFBusAuxiliariesType
 
-		public XElement GetElement(IBusAuxiliariesDeclarationData auxData)
+		public override XElement GetElement(IBusAuxiliariesDeclarationData auxData)
 		{
 			return new XElement(_mrf + XMLNames.BusAux_PneumaticSystem,
-				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, auxData.PneumaticSupply.CompressorDrive.GetLabel()),
+				new XElement(_mrf + XMLNames.Auxiliaries_Auxiliary_Technology, GetPneumaticSystemTechnology(auxData)),
 				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_SmartRegenerationSystem, auxData.PneumaticSupply.SmartRegeneration),
 				new XElement(_mrf + XMLNames.BusAux_PneumaticSystem_AirsuspensionControl, auxData.PneumaticConsumers.AirsuspensionControl.ToXMLFormat()),
 				new XElement(_mrf + "ReagentDosing", auxData.PneumaticConsumers.AdBlueDosing == ConsumerTechnology.Pneumatically)
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs
index e4328256b0..81996d0800 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFTransmissionType.cs
@@ -26,6 +26,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 					vehicleComponents.GearboxInputData.CertificationNumber),
 				new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue,
 					vehicleComponents.GearboxInputData.DigestValue?.DigestValue ?? ""),
+				new XElement(_mrf + XMLNames.Component_CertificationMethod, vehicleComponents.GearboxInputData.CertificationMethod.ToXMLFormat()),
 				new XElement(_mrf + "Type",
 					vehicleComponents.GearboxInputData.Type.ToXMLFormat()),
 				new XElement(_mrf + "NrOfGears", vehicleComponents.GearboxInputData.Gears.Count),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
index de3e5fe332..0652d0f6e4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs
@@ -231,6 +231,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 				_mrfFactory.GetPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData),
 				new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, inputData.JobInputData.Vehicle.DualFuelVehicle),
 				_mrfFactory.GetConventionalADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS),
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
 				_mrfFactory.GetConventional_PrimaryBusComponentsType().GetElement(inputData)
 			);
 		}
@@ -249,6 +250,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
 		{
 			return new XElement(_mrf + XMLNames.Component_Vehicle,
 				_mrfFactory.GetHEV_PrimaryBusVehicleOutputGroup().GetElements(inputData),
+				_mrfFactory.GetEngineTorqueLimitationsType().GetElement(inputData),
 				_mrfFactory.GetHEV_Px_IHPC_PrimaryBusComponentsType().GetElement(inputData)
 			);
 		}
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
index 40fb837966..8e2278db50 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
@@ -905,7 +905,11 @@
 			<xs:element name="OffVehicleChargingCapability"/>
 			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
 				<xs:complexType>
-					<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
 				</xs:complexType>
 			</xs:element>
 		</xs:sequence>
@@ -1856,6 +1860,15 @@
 		<xs:complexContent>
 			<xs:extension base="AbstractResultSummaryType">
 				<xs:sequence>
+					<xs:element name="AveragePayload">
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:double">
+									<xs:attribute name="unit" type="MassUnitType" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
 					<xs:element name="Fuel" maxOccurs="unbounded">
 						<xs:complexType>
 							<xs:sequence>
@@ -1883,6 +1896,15 @@
 		<xs:complexContent>
 			<xs:extension base="AbstractResultSummaryType">
 				<xs:sequence>
+					<xs:element name="AveragePayload">
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:double">
+									<xs:attribute name="unit" type="MassUnitType" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
 					<xs:element name="ElectricEnergy" type="ElectricEnergyType"/>
 					<xs:sequence minOccurs="0">
 						<xs:element name="FC_ZEV_AuxHeater">
@@ -1918,6 +1940,15 @@
 		<xs:complexContent>
 			<xs:extension base="AbstractResultSummaryType">
 				<xs:sequence>
+					<xs:element name="AveragePayload">
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:double">
+									<xs:attribute name="unit" type="MassUnitType" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
 					<xs:element name="Fuel" maxOccurs="unbounded">
 						<xs:complexType>
 							<xs:sequence>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
index e706ecd5c7..9af57a4b98 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
@@ -768,6 +768,16 @@
 					<xs:documentation>1.1.7.Vehicle group (Annex 1)</xs:documentation>
 				</xs:annotation>
 			</xs:element>
+			<xs:element name="VehicleGroupCO2">
+				<xs:annotation>
+					<xs:documentation>1.1.7a (Sub)group for CO2 standards</xs:documentation>
+				</xs:annotation>
+				<xs:simpleType>
+					<xs:restriction base="xs:string">
+						<xs:minLength value="1"/>
+					</xs:restriction>
+				</xs:simpleType>
+			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="OffVehicleChargingGroup">
@@ -819,16 +829,6 @@
 		<xs:sequence>
 			<xs:group ref="mrf:ManufacturerGroup"/>
 			<xs:group ref="mrf:GeneralVehicleOutputGroup"/>
-			<xs:element name="CO2StandardGroup" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>1.1.7a (Sub)group for CO2 standards</xs:documentation>
-				</xs:annotation>
-				<xs:simpleType>
-					<xs:restriction base="xs:string">
-						<xs:minLength value="1"/>
-					</xs:restriction>
-				</xs:simpleType>
-			</xs:element>
 			<xs:element name="CorrectedActualMass" type="v1.0:VehicleCurbMassChassisType">
 				<xs:annotation>
 					<xs:documentation>1.1.8 Corrected actual mass [kg]</xs:documentation>
@@ -988,12 +988,14 @@
 	<xs:complexType name="Conventional-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:Conventional-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
 			<xs:element name="Components" type="mrf:Conventional-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-Px_IHPC-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
 			<xs:element name="Components" type="mrf:HEV-Px_IHPC-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
@@ -1431,7 +1433,7 @@
 					</xs:simpleContent>
 				</xs:complexType>
 			</xs:element>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 		</xs:sequence>
 	</xs:group>
 	<!--Auxiliaries-->
@@ -1574,8 +1576,8 @@
 	<xs:group name="ElectricMachineGroup">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
-			<xs:element name="ElectricMachineType"/>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="ElectricMachineType" type="xs:string"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="ElectricMachinePowerGroup">
@@ -1604,7 +1606,7 @@
 			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="LowestTotalTransmissionRatio" type="v1.0:Double3"/>
 			<xs:element name="DifferentialIncluded" type="xs:boolean"/>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 		</xs:sequence>
 	</xs:group>
 	<!--Axles-->
@@ -1675,18 +1677,19 @@
 	<xs:complexType name="TorqueConverterType">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="RetarderType">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="TransmissionType">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 			<xs:element name="Type" type="v2.3:GearboxTransmissionTypeType"/>
 			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="FinalGearRatio" type="v1.0:GearboxGearRatioType"/>
@@ -1913,7 +1916,7 @@
 	<xs:complexType name="ADCType">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
-			<xs:element name="CertificationMethod"/>
+			<xs:element name="CertificationMethod" type="xs:string"/>
 			<xs:element name="Ratio" type="v1.0:AngledriveRatioType"/>
 		</xs:sequence>
 	</xs:complexType>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
index 22114e9a39..e0b2da9b35 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/IEPC_heavyLorry.xml
@@ -22,7 +22,8 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
index d14b255858..f0c39eb891 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_AMT_E2.xml
@@ -23,7 +23,8 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
index d9910a72fa..0646086cb4 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_APT-N_E2.xml
@@ -22,7 +22,8 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
index 78e3fbeee3..9929f9a229 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E3.xml
@@ -22,7 +22,8 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
index c48b598f4a..7900c34fa0 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/PEV_heavyLorry_E4.xml
@@ -22,7 +22,8 @@
 		<SleeperCab>false</SleeperCab>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
index 9a373e40b2..e4d7251ff8 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/IEPC_mediumLorry.xml
@@ -18,7 +18,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
index 40e351380d..9c95661516 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2.xml
@@ -17,7 +17,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
index e2cffff03e..cf76eaa548 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_AMT_E2_EM_Std.xml
@@ -18,7 +18,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
index 1312204a7c..fcbf86abff 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_APT-N_E2.xml
@@ -18,7 +18,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
index 558607dbc1..5408e58f07 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E3.xml
@@ -18,7 +18,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
index f63dc41940..285c2cde75 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/PEV_mediumLorry_E4.xml
@@ -18,7 +18,8 @@
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<VehicleTypeApprovalNumber>ASDF</VehicleTypeApprovalNumber>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="v2.4:ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
index aa63f6c2be..4c1d3ecd0f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/IEPC_primaryBus.xml
@@ -16,7 +16,8 @@
 		<AngledriveType>None</AngledriveType>
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<ArchitectureID>E-IEPC</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_IEPC_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
index 7973ecb2a7..53171763d7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_AMT_E2.xml
@@ -16,7 +16,8 @@
 		<AngledriveType>None</AngledriveType>
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<ArchitectureID>E2</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
index 77e3c27b02..7ddb067b0b 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E3.xml
@@ -16,7 +16,8 @@
 		<AngledriveType>None</AngledriveType>
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<ArchitectureID>E3</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
index 5de8b5e361..379c7a8749 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/PEV_primaryBus_E4.xml
@@ -16,7 +16,8 @@
 		<AngledriveType>None</AngledriveType>
 		<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
 		<ArchitectureID>E4</ArchitectureID>
-		<OvcHev>false</OvcHev>
+		<OvcHev>true</OvcHev>
+		<MaxChargingPower>30000</MaxChargingPower>
 		<ADAS xsi:type="ADAS_PEV_Type">
 			<PredictiveCruiseControl>1,2,3</PredictiveCruiseControl>
 		</ADAS>
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 12a914221d..46de90a322 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -36,8 +36,7 @@
     </None>
   </ItemGroup>
 	<Choose>
-		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(
-         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
+		<When Condition="$([System.Text.RegularExpressions.Regex]::IsMatch(&#xD;&#xA;         $(DefineConstants), '^(.*;)*MOCKUP(;.*)*$'))">
 			<ItemGroup>
 				<ProjectReference Include="$(SolutionDir)\VectoMockup\VectoMockup\VectoMockup.csproj" />
 
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml
index b4e9fb8451..cb4e2b82cf 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Bus.xml
@@ -28,6 +28,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- Conventional Bus -->
 		<Summary xsi:type="ResultSummaryConventionalType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
 				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml
index 5d9eb99853..f4a4d304c9 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_Conv_Lorry.xml
@@ -31,6 +31,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END Conventional Lorry -->
 		<Summary xsi:type="ResultSummaryConventionalType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
 				<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml
index cb0510f832..0de3691f76 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Bus.xml
@@ -70,6 +70,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END OCV HEV (and OCV FCV in future) Bus -->
 		<Summary xsi:type="ResultSummaryOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
 				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml
index e2d877de79..db265ed792 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_OVC-HEV_Lorry.xml
@@ -85,6 +85,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END OCV HEV (and OCV FCV in future) Lorry -->
 		<Summary xsi:type="ResultSummaryOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<!-- repeat for every fuel used -->
 			<Fuel type="Diesel CI">
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml
index 9d7c3b7b92..17f4916e6f 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Bus.xml
@@ -38,6 +38,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END PEV Bus -->
 		<Summary xsi:type="ResultSummaryPEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<ElectricEnergy>
 				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
 				<EnergyConsumption unit="kWh/p-km">7.111</EnergyConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml
index 077090df91..f4a92ac09c 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_PEV_Lorry.xml
@@ -28,6 +28,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END PEV Lorry -->
 		<Summary xsi:type="ResultSummaryPEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<ElectricEnergy>
 				<EnergyConsumption unit="kWh/km">7.101</EnergyConsumption>
 				<EnergyConsumption unit="kWh/t-km">7.121</EnergyConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml
index 839993909a..451607e35c 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Bus.xml
@@ -28,6 +28,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END non-OCV HEV Bus -->
 		<Summary xsi:type="ResultSummaryNonOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
 				<FuelConsumption unit="g/p-km">6.21</FuelConsumption>
diff --git a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml
index efe9fd4230..6b6c0a8ffb 100644
--- a/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml
+++ b/VectoMockup/VectoMockup/MockupResults/CIF_MockupResults_non-OVC-HEV_Lorry.xml
@@ -31,6 +31,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec
 		</Result>
 		<!-- END non-OCV HEV Lorry -->
 		<Summary xsi:type="ResultSummaryNonOCVHEVType">
+			<AveragePayload unit="t">3.141</AveragePayload>
 			<Fuel type="Diesel CI"><!-- repeat for every fuel used -->
 				<FuelConsumption unit="g/km">6.1</FuelConsumption>
 				<FuelConsumption unit="g/t-km">6.20</FuelConsumption>
-- 
GitLab