diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index d09e844eb9250faf40281cd12a2c418982ee3767..abd5cfd43b10d99a3f81341cac9f83f4f8c45e09 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -702,7 +702,7 @@ Public Class Vehicle End Get End Property - Public ReadOnly Property SleeperCab As Boolean Implements IVehicleDeclarationInputData.SleeperCab + Public ReadOnly Property SleeperCab As Boolean? Implements IVehicleDeclarationInputData.SleeperCab get Return DeclarationData.Vehicle.SleeperCabDefault End Get diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index c32b74e64f87ebf3f0dda956950ecda317d2f756..914d702e4f9be1e017ef31316919f3338ed4b07b 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -137,7 +137,7 @@ namespace TUGraz.VectoCommon.InputData bool VocationalVehicle { get; } - bool SleeperCab { get; } + bool? SleeperCab { get; } TankSystem? TankSystem { get; } diff --git a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs index 5994a42c8eacc3ea957d4969b1d063293ff4f6dc..faed4ec4936407e421deb8a32d16b9eff1bb9eed 100644 --- a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs +++ b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs @@ -38,6 +38,7 @@ namespace TUGraz.VectoCommon.Models [SuppressMessage("ReSharper", "InconsistentNaming")] public enum AxleConfiguration { + AxleConfig_Undefined, AxleConfig_4x2, AxleConfig_4x4, AxleConfig_6x2, @@ -47,7 +48,6 @@ namespace TUGraz.VectoCommon.Models AxleConfig_8x4, AxleConfig_8x6, AxleConfig_8x8, - AxleConfig_Undefined, } public enum AxleType diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs index 8559e499e309c7948ce9151a2ce12638943b4f67..a972ea6c1474d00489dbecf9102f0438ed2a6ef0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs @@ -349,7 +349,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { return DeclarationData.Vehicle.VocationalVehicleDefault; } } - public bool SleeperCab + public bool? SleeperCab { get { return DeclarationData.Vehicle.SleeperCabDefault; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 9a1de31b7a4bb62b48bce6a89f72c2d6213955e9..56838ba6fc0a4e4fcb5831f4516a23d22b538eea 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -327,7 +327,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual bool VocationalVehicle { get { return DeclarationData.Vehicle.VocationalVehicleDefault; } } - public virtual bool SleeperCab { get { return DeclarationData.Vehicle.SleeperCabDefault; } } + public virtual bool? SleeperCab { get { return DeclarationData.Vehicle.SleeperCabDefault; } } public virtual TankSystem? TankSystem { get { return DeclarationData.Vehicle.TankSystemDefault; } } public virtual IAdvancedDriverAssistantSystemDeclarationInputData ADAS { get { return this; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index ed61a684c6018fac14736e589be3fd234d0eba2e..c72ccf84144c8cbb53f849ed4476bf3cf21f416a 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -166,7 +166,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual AxleConfiguration AxleConfiguration { - get { return AxleConfigurationHelper.Parse(GetString(XMLNames.Vehicle_AxleConfiguration)); } + get + { + return ElementExists(XMLNames.Vehicle_AxleConfiguration) + ? AxleConfigurationHelper.Parse(GetString(XMLNames.Vehicle_AxleConfiguration)) + : AxleConfiguration.AxleConfig_Undefined; + } } public virtual string ManufacturerAddress @@ -215,9 +220,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_VocationalVehicle)); } } - public virtual bool SleeperCab + public virtual bool? SleeperCab { - get { return XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_SleeperCab)); } + get + { + return ElementExists(XMLNames.Vehicle_SleeperCab) + ? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_SleeperCab)) + : (bool?)null; + } } public virtual TankSystem? TankSystem @@ -316,7 +326,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return false; } } - public override bool SleeperCab + public override bool? SleeperCab { get { return true; } } @@ -469,9 +479,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return false; } } - public override bool SleeperCab + public override bool? SleeperCab { - get { return false; } + get { return null; } } public override TankSystem? TankSystem @@ -501,12 +511,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public override Watt MaxNetPower1 { - get { return HybridElectricHDV ? GetDouble(XMLNames.Vehicle_MaxNetPower1).SI<Watt>() : null; } + get { return ElementExists(XMLNames.Vehicle_MaxNetPower1) ? GetDouble(XMLNames.Vehicle_MaxNetPower1).SI<Watt>() : null; } } public override Watt MaxNetPower2 { - get { return HybridElectricHDV ? GetDouble(XMLNames.Vehicle_MaxNetPower2).SI<Watt>() : null; } + get { return ElementExists(XMLNames.Vehicle_MaxNetPower2) ? GetDouble(XMLNames.Vehicle_MaxNetPower2).SI<Watt>() : null; } } public override IVehicleComponentsDeclaration Components @@ -572,5 +582,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider sourceFile) { } + + public override bool? SleeperCab + { + get + { + return ElementExists(XMLNames.Vehicle_SleeperCab) ? XmlConvert.ToBoolean(GetString(XMLNames.Vehicle_SleeperCab)) : (bool?)null; + } + } + + public override AxleConfiguration AxleConfiguration + { + get + { + return ElementExists(XMLNames.Vehicle_AxleConfiguration) + ? AxleConfigurationHelper.Parse(GetString(XMLNames.Vehicle_AxleConfiguration)) + : AxleConfiguration.AxleConfig_Undefined; + } + } } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs index f70c20a5fcff136742f0f57065eb9e09c4345795..8785bcc9066860a1418e145d52acf57e2a32e3e3 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs @@ -154,7 +154,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider get { return false; } } - public bool SleeperCab + public bool? SleeperCab { get { return false; } } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index c4530d72f8abd5e040524e54e16d70beaca14782..c6079a0a28d00299781053e5676240ded24eb06a 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -176,6 +176,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter exempted.DualFuelVehicle = data.DualFuelVehicle; exempted.MaxNetPower1 = data.MaxNetPower1; exempted.MaxNetPower2 = data.MaxNetPower2; + exempted.SleeperCab = data.SleeperCab; + exempted.AxleConfiguration = data.AxleConfiguration; + return exempted; } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs index eba281e270f221d52660d8d17a374bb018339e69..20a87b969bbfedf3953de66157ac033646821293 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs @@ -91,6 +91,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl _dao = new DeclarationDataAdapter(); var vehicle = InputDataProvider.JobInputData.Vehicle; if (vehicle.ExemptedVehicle) { + if (vehicle.AxleConfiguration != AxleConfiguration.AxleConfig_Undefined) { + _segment = GetVehicleClassification(vehicle.VehicleCategory, + vehicle.AxleConfiguration, vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, false); + } return; } @@ -146,6 +150,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, allowVocational), InputDataHash = InputDataProvider.XMLHash }; + powertrainConfig.VehicleData.VehicleClass = _segment.Found ? _segment.VehicleClass : VehicleClass.Class0; } else { powertrainConfig = new VectoRunData() { VehicleData = diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs index aa5045f28ec32f07a41bc0b160e3b354fee07f2d..dc5a16ce0d2e149f66a3a3bdeff79f155939f61d 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs @@ -214,7 +214,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data public bool DualFuelVehicle { get; internal set; } public Watt MaxNetPower1 { get; internal set; } public Watt MaxNetPower2 { get; internal set; } - public bool SleeperCab { get; internal set; } + public bool? SleeperCab { get; internal set; } public ADASData ADAS { get; internal set; } public bool VocationalVehicle { get; internal set; } diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 36b58a4360776a2480565c00ab087741fba6ce86..4029407bef559766b70ea6f93451fce5cd1cd0ac 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -703,7 +703,7 @@ namespace TUGraz.VectoCore.OutputData row[TOTAL_VEHICLE_MASS] = (ConvertedSI)data.TotalVehicleWeight; - row[SLEEPER_CAB] = data.SleeperCab ? "yes" : "no"; + row[SLEEPER_CAB] = data.SleeperCab.HasValue ? (data.SleeperCab.Value ? "yes" : "no") : "-"; row[ROLLING_RESISTANCE_COEFFICIENT_WO_TRAILER] = data.RollResistanceCoefficientWithoutTrailer; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index 00947fec696a329bebdb8fadc315bce366d62152..050864dafab16d1af72d8871f36290e027f86354 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -227,11 +227,18 @@ namespace TUGraz.VectoCore.OutputData.XML public override void InitializeReport(VectoRunData modelData) { - WeightingGroup = modelData.Exempted - ? WeightingGroup.Unknown - : DeclarationData.WeightingGroup.Lookup( - modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab, - modelData.EngineData.RatedPowerDeclared); + if (modelData.Exempted) { + WeightingGroup = WeightingGroup.Unknown; + } else { + if (modelData.VehicleData.SleeperCab == null) { + throw new VectoException("SleeperCab parameter is required"); + } + + WeightingGroup = DeclarationData.WeightingGroup.Lookup( + modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab.Value, + modelData.EngineData.RatedPowerDeclared); + } + _weightingFactors = WeightingGroup == WeightingGroup.Unknown ? ZeroWeighting : DeclarationData.WeightingFactors.Lookup(WeightingGroup); diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs index 1a7bf845c97fd3e7460036cace11ef2bf51a7c7a..c8f7db8d3110c91420c60648a6407025a6b70e09 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs @@ -140,10 +140,26 @@ namespace TUGraz.VectoCore.OutputData.XML private XElement[] ExemptedData(VectoRunData modelData) { - return new [] { - modelData.VehicleData.HybridElectricHDV ? new XElement(tns + XMLNames.Vehicle_MaxNetPower1, XMLHelper.ValueAsUnit(modelData.VehicleData.MaxNetPower1, XMLNames.Unit_W)) : null, - modelData.VehicleData.HybridElectricHDV ? new XElement(tns + XMLNames.Vehicle_MaxNetPower2, XMLHelper.ValueAsUnit(modelData.VehicleData.MaxNetPower2, XMLNames.Unit_W)) : null - }; + var retVal = new List<XElement>(); + + if (modelData.VehicleData.AxleConfiguration != AxleConfiguration.AxleConfig_Undefined) { + retVal.Add(new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName())); + retVal.Add(new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber())); + } + + if (modelData.VehicleData.SleeperCab.HasValue) { + retVal.Add(new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab.Value)); + } + + if (modelData.VehicleData.MaxNetPower1 != null) + retVal.Add(new XElement(tns + XMLNames.Vehicle_MaxNetPower1, + XMLHelper.ValueAsUnit(modelData.VehicleData.MaxNetPower1, XMLNames.Unit_W))); + if (modelData.VehicleData.MaxNetPower2 != null) { + retVal.Add(new XElement(tns + XMLNames.Vehicle_MaxNetPower2, + XMLHelper.ValueAsUnit(modelData.VehicleData.MaxNetPower2, XMLNames.Unit_W))); + } + + return retVal.ToArray(); } private XElement CreateDummySig() diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs index 3e4110be734f55e5cab7f4dd2f6caf5dad7333af..01e232f7c9cc0c7aee08c9dd9ed9392209d1094d 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs @@ -292,7 +292,7 @@ namespace TUGraz.VectoCore.Tests.Integration TestCase(ExemptedSleeperT, null, true, 30000, 20000, false), TestCase(ExemptedSleeperF, null, false, 30000, 20000, false), TestCase(ExemptedPEVMaxNetPower, AxleConfiguration.AxleConfig_4x2, true, 30000, 20000, true), - TestCase(ExemptedPEVMaxNetPower, AxleConfiguration.AxleConfig_4x2, null, null, null, true), + TestCase(ExemptedPEVMin, null, null, null, null, true), TestCase(ExemptedMin_v2, null, null, null, null, false), TestCase(ExemptedAxl_v2, AxleConfiguration.AxleConfig_4x2, null, 30000, 20000, false), @@ -301,7 +301,7 @@ namespace TUGraz.VectoCore.Tests.Integration TestCase(ExemptedSleeperT_v2, null, true, 30000, 20000, false), TestCase(ExemptedSleeperF_v2, null, false, 30000, 20000, false), TestCase(ExemptedPEVMaxNetPower_v2, AxleConfiguration.AxleConfig_4x2, true, 30000, 20000, true), - TestCase(ExemptedPEVMaxNetPower_v2, AxleConfiguration.AxleConfig_4x2, null, null, null, true), + TestCase(ExemptedPEVMin_v2, null, null, null, null, true), ] public void TestExemptedVehiclesAxleConfSleeperCabMRF(string filename, AxleConfiguration? expectedMrfAxleConf, bool? expectedMrfSleeperCab, double? expectedMaxNetPower1, double? expectedMaxNetPower2, bool zeHDV) @@ -336,7 +336,48 @@ namespace TUGraz.VectoCore.Tests.Integration var val2 = new XMLValidator(writer.GetReport(ReportType.DeclarationReportCustomerXML).CreateReader()); Assert.IsTrue(val2.ValidateXML(XmlDocumentType.CustomerReport)); - Assert.Fail("not fully implemented"); + var mrf = writer.GetReport(ReportType.DeclarationReportManufacturerXML).Document; + Assert.NotNull(mrf); + + var axleConfNode = mrf.XPathSelectElements(XMLHelper.QueryLocalName(XMLNames.Vehicle_AxleConfiguration)) + .ToArray(); + if (expectedMrfAxleConf == null) { + Assert.AreEqual(0, axleConfNode.Length); + } else { + Assert.AreEqual(1, axleConfNode.Length, "axleconfiguration missing in mrf"); + Assert.AreEqual(expectedMrfAxleConf.Value, AxleConfigurationHelper.Parse(axleConfNode.First().Value), "axleconfiguration: incorrect value"); + } + + var sleeperCabNode = mrf.XPathSelectElements(XMLHelper.QueryLocalName(XMLNames.Vehicle_SleeperCab)) + .ToArray(); + if (expectedMrfSleeperCab == null) { + Assert.AreEqual(0, sleeperCabNode.Length); + } else { + Assert.AreEqual(1, sleeperCabNode.Length); + Assert.AreEqual(expectedMrfSleeperCab.Value, XmlConvert.ToBoolean(sleeperCabNode.First().Value)); + } + + var maxNetPower1Node = mrf.XPathSelectElements(XMLHelper.QueryLocalName(XMLNames.Vehicle_MaxNetPower1)) + .ToArray(); + if (expectedMaxNetPower1 == null) { + Assert.AreEqual(0, maxNetPower1Node.Length); + } else { + Assert.AreEqual(1, maxNetPower1Node.Length); + Assert.AreEqual(expectedMaxNetPower1.Value, maxNetPower1Node.First().Value.ToDouble()); + } + + var maxNetPower2Node = mrf.XPathSelectElements(XMLHelper.QueryLocalName(XMLNames.Vehicle_MaxNetPower2)) + .ToArray(); + if (expectedMaxNetPower2 == null) { + Assert.AreEqual(0, maxNetPower2Node.Length); + } else { + Assert.AreEqual(1, maxNetPower2Node.Length); + Assert.AreEqual(expectedMaxNetPower2.Value, maxNetPower2Node.First().Value.ToDouble()); + } + + var zeNode = mrf.XPathSelectElement(XMLHelper.QueryLocalName(XMLNames.Vehicle_ZeroEmissionVehicle)); + Assert.NotNull(zeNode); + Assert.AreEqual(zeHDV, XmlConvert.ToBoolean(zeNode.Value)); } private static void SetExemptedParameters(XPathNavigator nav, bool zeroEmission, bool hybrid, bool dualFuel) diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted.xml index 3bcd562e3bb40227fd45ee32d7bee4063ae0528a..b437e77a26760af10c552b5d5dcabbd0dfcaf243 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted.xml @@ -13,7 +13,6 @@ <Date>2017-02-15T11:00:00Z</Date> <LegislativeClass>N3</LegislativeClass> <VehicleCategory>Tractor</VehicleCategory> - <AxleConfiguration>4x2</AxleConfiguration> <CurbMassChassis>7100</CurbMassChassis> <GrossVehicleMass>40000</GrossVehicleMass> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_PEV.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_PEV.xml index 88602ed6f44ea67db34625f82a3affa09a9c8fc7..48d78a570746c4e4909c7225f189736175abc28a 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_PEV.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_PEV.xml @@ -18,6 +18,7 @@ <CurbMassChassis>7100</CurbMassChassis> <GrossVehicleMass>40000</GrossVehicleMass> <ZeroEmissionVehicle>true</ZeroEmissionVehicle> + <SleeperCab>true</SleeperCab> <MaxNetPower1>30000</MaxNetPower1> <MaxNetPower2>20000</MaxNetPower2> <HybridElectricHDV>false</HybridElectricHDV> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperF.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperF.xml index e11784a36b93c63050b9afe62d19b5fe32c81712..c11c7a0d696cc7a15fddec754fee9eb803be2fcd 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperF.xml @@ -14,7 +14,7 @@ <Date>2017-02-15T11:00:00Z</Date> <LegislativeClass>N3</LegislativeClass> <VehicleCategory>Tractor</VehicleCategory> - <AxleConfiguration>6x2</AxleConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> <CurbMassChassis>7100</CurbMassChassis> <GrossVehicleMass>40000</GrossVehicleMass> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperT.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperT.xml index cbf089cf2e4912ceafc7d60541af5d9fb78cb6d8..1c1699e1594ba420ec9a9f837b07053e9cdc38f3 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperT.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl+SleeperT.xml @@ -14,7 +14,7 @@ <Date>2017-02-15T11:00:00Z</Date> <LegislativeClass>N3</LegislativeClass> <VehicleCategory>Tractor</VehicleCategory> - <AxleConfiguration>6x2</AxleConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> <CurbMassChassis>7100</CurbMassChassis> <GrossVehicleMass>40000</GrossVehicleMass> <ZeroEmissionVehicle>false</ZeroEmissionVehicle> diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl.xml index 16f1000494bb13eb3b2431839ec48026e17bab06..dd5832f90ecbe8410745de203575ae8bae8600b0 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/exempted_v2.2.1_axl.xml @@ -14,7 +14,7 @@ <Date>2017-02-15T11:00:00Z</Date> <LegislativeClass>N3</LegislativeClass> <VehicleCategory>Tractor</VehicleCategory> - <AxleConfiguration>6x2</AxleConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> <CurbMassChassis>7100</CurbMassChassis> <GrossVehicleMass>40000</GrossVehicleMass> <ZeroEmissionVehicle>false</ZeroEmissionVehicle>