From 48e13d88985600e53ae4afe4c6ced02a9e5b23e8 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Sat, 22 Feb 2020 17:29:19 +0100 Subject: [PATCH] customer and manufacturer report for fwd medium lorry, legislative class --- .../VectoCommon/Models/AxleConfiguration.cs | 28 +- .../VectoCommon/Models/LegislativeClass.cs | 3 +- .../XMLDeclarationVehicleDataProvider.cs | 9 + .../DeclarationDataAdapterHeavyLorry.cs | 1 + .../DeclarationVTPModeVectoRunDataFactory.cs | 2 + .../XML/AbstractXMLManufacturerReport.cs | 15 + .../OutputData/XML/XMLManufacturerReport.cs | 14 + .../Resources/XSD/VectoOutputCustomer.0.8.xsd | 75 ++- .../XSD/VectoOutputManufacturer.0.8.xsd | 507 ++++++++++-------- VectoCore/VectoCoreTest/VectoCoreTest.csproj | 15 + 10 files changed, 393 insertions(+), 276 deletions(-) diff --git a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs index 22d1988c55..3c2d563b29 100644 --- a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs +++ b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs @@ -93,18 +93,16 @@ namespace TUGraz.VectoCommon.Models { switch (self) { case AxleConfiguration.AxleConfig_4x2: - case AxleConfiguration.AxleConfig_4x4: - return 2; + case AxleConfiguration.AxleConfig_4x4: return 2; case AxleConfiguration.AxleConfig_6x2: case AxleConfiguration.AxleConfig_6x4: - case AxleConfiguration.AxleConfig_6x6: - return 3; + case AxleConfiguration.AxleConfig_6x6: return 3; case AxleConfiguration.AxleConfig_8x2: case AxleConfiguration.AxleConfig_8x4: case AxleConfiguration.AxleConfig_8x6: - case AxleConfiguration.AxleConfig_8x8: - return 4; + case AxleConfiguration.AxleConfig_8x8: return 4; } + return 0; } @@ -114,19 +112,21 @@ namespace TUGraz.VectoCommon.Models case AxleConfiguration.AxleConfig_4x2: case AxleConfiguration.AxleConfig_4x2F: case AxleConfiguration.AxleConfig_6x2: - case AxleConfiguration.AxleConfig_8x2: - return 1; + case AxleConfiguration.AxleConfig_8x2: return 1; case AxleConfiguration.AxleConfig_4x4: case AxleConfiguration.AxleConfig_6x4: - case AxleConfiguration.AxleConfig_8x4: - return 2; + case AxleConfiguration.AxleConfig_8x4: return 2; case AxleConfiguration.AxleConfig_6x6: - case AxleConfiguration.AxleConfig_8x6: - return 3; - case AxleConfiguration.AxleConfig_8x8: - return 4; + case AxleConfiguration.AxleConfig_8x6: return 3; + case AxleConfiguration.AxleConfig_8x8: return 4; } + return 0; } + + public static bool AxlegearIncludedInGearbox(this AxleConfiguration self) + { + return self == AxleConfiguration.AxleConfig_4x2F; + } } } \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Models/LegislativeClass.cs b/VectoCommon/VectoCommon/Models/LegislativeClass.cs index c2f92c682f..cf710de297 100644 --- a/VectoCommon/VectoCommon/Models/LegislativeClass.cs +++ b/VectoCommon/VectoCommon/Models/LegislativeClass.cs @@ -35,7 +35,8 @@ namespace TUGraz.VectoCommon.Models { Unknown, N2, - N3 + N3, + M3 } public static class LegislativeClassHelper diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs index 91c6397f5c..1fa6d3dde5 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs @@ -672,6 +672,15 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider get { return null; } } + #region Overrides of XMLDeclarationVehicleDataProviderV10 + + public override LegislativeClass LegislativeClass + { + get { return LegislativeClass.M3; } + } + + #endregion + public override IPTOTransmissionInputData PTOTransmissionInputData { get { return null; } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs index f20bf2a436..11ecb3ad5b 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterHeavyLorry.cs @@ -114,6 +114,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter protected virtual VehicleData CreateNonExemptedVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading) { var retVal = SetCommonVehicleData(data); + retVal.LegislativeClass = data.LegislativeClass; retVal.AxleConfiguration = data.AxleConfiguration; retVal.AirDensity = DeclarationData.AirDensity; retVal.VIN = data.VIN; diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs index 0793fb82c8..ae81e4e071 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs @@ -183,6 +183,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl runData.Mission = mission; runData.Loading = loading.Key; runData.VehicleData.VehicleClass = Segment.VehicleClass; + runData.VehicleData.LegislativeClass = JobInputData.Vehicle.LegislativeClass; yield return runData; // simulate the Measured cycle @@ -204,6 +205,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl MissionType = MissionType.VerificationTest }; vtpRunData.VehicleData.VehicleClass = Segment.VehicleClass; + vtpRunData.VehicleData.LegislativeClass = JobInputData.Vehicle.LegislativeClass; //var ncvStd = DeclarationData.FuelData.Lookup(JobInputData.Vehicle.Components.EngineInputData.FuelType).LowerHeatingValueVecto; //var ncvCorrection = ncvStd / JobInputData.NetCalorificValueTestFuel; diff --git a/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs index 052689f019..cca2c7d746 100644 --- a/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs @@ -328,6 +328,21 @@ namespace TUGraz.VectoCore.OutputData.XML ); } + protected virtual XElement GetGearboxDescription(GearboxData gearboxData, AxleGearData axlegearData) + { + return new XElement( + tns + XMLNames.Component_Gearbox, + GetCommonDescription(gearboxData), + new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()), + new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, gearboxData.Gears.Count), + new XElement(tns + XMLNames.Gearbox_AxlegearRatio, axlegearData.AxleGear.Ratio.ToXMLFormat(3)), + new XElement( + tns + XMLNames.Report_Gearbox_TransmissionRatioFinalGear, + gearboxData.Gears[gearboxData.Gears.Keys.Max()].Ratio.ToXMLFormat(3)) + ); + } + + protected virtual XElement GetTorqueConverterDescription(TorqueConverterData torqueConverterData) { if (torqueConverterData == null) { diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs index cf93db46a5..d14364d236 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs @@ -77,6 +77,20 @@ namespace TUGraz.VectoCore.OutputData.XML protected override XElement VehicleComponents(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { + if (modelData.VehicleData.AxleConfiguration.AxlegearIncludedInGearbox()) { + return new XElement( + tns + XMLNames.Vehicle_Components, + new XAttribute(xsi + "type", "ComponentsTruckFWDType"), + GetEngineDescription(modelData.EngineData, fuelModes), + GetGearboxDescription(modelData.GearboxData, modelData.AxleGearData), + GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), + GetRetarderDescription(modelData.Retarder), + GetAngledriveDescription(modelData.AngledriveData), + GetAirDragDescription(modelData.AirdragData), + GetAxleWheelsDescription(modelData.VehicleData), + GetAuxiliariesDescription(modelData) + ); + } return new XElement( tns + XMLNames.Vehicle_Components, new XAttribute(xsi + "type", "ComponentsTruckType"), diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.8.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.8.xsd index 544aef5674..48877f1aff 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.8.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.8.xsd @@ -18,6 +18,30 @@ <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/> </xs:complexType> </xs:element> + <xs:complexType name="ADASType"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P271 / II.1.2.11</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithoutEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P272 / II.1.2.12</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P273 / II.1.2.13</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P274 / II.1.2.14</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> <xs:complexType name="CO2Type"> <xs:simpleContent> <xs:extension base="xs:double"> @@ -251,7 +275,7 @@ </xs:element> <xs:choice> <xs:sequence> - <xs:element name="AxleConfiguration" type="vdecdef:VehicleAxleConfigurationDeclarationType"> + <xs:element name="AxleConfiguration" type="xs:string"> <xs:annotation> <xs:documentation>P037 / II.1.1.3</xs:documentation> </xs:annotation> @@ -403,6 +427,11 @@ <xs:enumeration value="g/m³-km"/> </xs:restriction> </xs:simpleType> + <xs:simpleType name="DisplacementType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="ltr"/> + </xs:restriction> + </xs:simpleType> <xs:simpleType name="DistanceUnitType"> <xs:restriction base="xs:token"> <xs:enumeration value="km"/> @@ -438,50 +467,20 @@ <xs:enumeration value="Construction"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="SpeedUnitType"> - <xs:restriction base="xs:token"> - <xs:enumeration value="km/h"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="VehicleGroupType"> - <xs:restriction base="xs:int"> - <xs:minInclusive value="1"/> - <xs:maxInclusive value="16"/> - </xs:restriction> - </xs:simpleType> <xs:simpleType name="PowerUnitType"> <xs:restriction base="xs:string"> <xs:enumeration value="kW"/> <xs:enumeration value="W"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="DisplacementType"> + <xs:simpleType name="SpeedUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km/h"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="VehicleGroupType"> <xs:restriction base="xs:string"> - <xs:enumeration value="ltr"/> + <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> - <xs:complexType name="ADASType"> - <xs:sequence> - <xs:element name="EngineStopStart" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P271 / II.1.2.11</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="EcoRollWithoutEngineStop" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P272 / II.1.2.12</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="EcoRollWithEngineStop" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P273 / II.1.2.13</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="PredictiveCruiseControl" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P274 / II.1.2.14</xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd index 8d6b97b146..cc3f924ab6 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd @@ -8,6 +8,32 @@ <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/> + <xs:complexType name="AbstractComponentsType" abstract="true"/> + <xs:complexType name="AbstractVehicleType" abstract="true"/> + <xs:complexType name="ADASType"> + <xs:sequence> + <xs:element name="EngineStopStart" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P271 / I.1.12.1</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithoutEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P272 / I.1.12.2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P273 / I.1.12.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P274 / I.1.12.4</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> <xs:complexType name="AirdragType"> <xs:sequence> <xs:element name="Model" minOccurs="0"> @@ -190,6 +216,86 @@ <xs:element name="DigestValue" type="xs:token"/> </xs:sequence> </xs:complexType> + <xs:complexType name="ComponentsPrimaryBusType"> + <xs:complexContent> + <xs:extension base="AbstractComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="EngineType"/> + <xs:element name="Gearbox" type="GearboxType"/> + <xs:element name="TorqueConverter" type="TorqueconverterType" minOccurs="0"/> + <xs:element name="Retarder" type="RetarderType"/> + <xs:element name="Angledrive" type="AngledriveType" minOccurs="0"/> + <xs:element name="Axlegear" type="AxlegearType"/> + <xs:element name="AxleWheels" type="AxleWheelsType"/> + <xs:element name="Auxiliaries" type="v2.6:AbstractPrimaryVehicleAuxiliaryDataDeclarationType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ComponentsTruckType"> + <xs:complexContent> + <xs:extension base="AbstractComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="EngineType"/> + <xs:element name="Gearbox" type="GearboxType"/> + <xs:element name="TorqueConverter" type="TorqueconverterType" minOccurs="0"/> + <xs:element name="Retarder" type="RetarderType"/> + <xs:element name="Angledrive" type="AngledriveType" minOccurs="0"/> + <xs:element name="Axlegear" type="AxlegearType"/> + <xs:element name="AirDrag" type="AirdragType"/> + <xs:element name="AxleWheels" type="AxleWheelsType"/> + <xs:element name="Auxiliaries" type="AuxiliariesTruckType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="ComponentsTruckFWDType"> + <xs:complexContent> + <xs:extension base="AbstractComponentsType"> + <xs:sequence> + <xs:element name="Engine" type="EngineType"/> + <xs:element name="Gearbox" type="GearboxFWDType"/> + <xs:element name="TorqueConverter" type="TorqueconverterType" minOccurs="0"/> + <xs:element name="Retarder" type="RetarderType"/> + <xs:element name="Angledrive" type="AngledriveType" minOccurs="0"/> + <xs:element name="AirDrag" type="AirdragType"/> + <xs:element name="AxleWheels" type="AxleWheelsType"/> + <xs:element name="Auxiliaries" type="AuxiliariesTruckType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="EngineSpeedDrivingType"> + <xs:sequence> + <xs:element name="Min"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Average"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Max"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> <xs:complexType name="EngineType"> <xs:sequence> <xs:element name="Model" type="vdecdef:ModelType"> @@ -320,6 +426,51 @@ </xs:element> </xs:sequence> </xs:complexType> + <xs:complexType name="GearboxFWDType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P205 / I.1.3.1</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="vdecdef:GearboxCertificationOptionType"> + <xs:annotation> + <xs:documentation>P154 / I.1.3.3 / #26</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P262 / I.1.3.2 / #4</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.3.9</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TransmissionType" type="vdecdef:GearboxTransmissionTypeType"> + <xs:annotation> + <xs:documentation>P076 / I.1.3.4 / #27</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="GearsCount"> + <xs:annotation> + <xs:documentation>P199 / I.1.3.5 / #28</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="AxlegearRatio" type="vdecdef:AxlegearRatioType"/> + <xs:element name="TransmissionRatioFinalGear" type="vdecdef:GearboxGearRatioType"> + <xs:annotation> + <xs:documentation>P078 / I.1.3.6 / #29</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> <xs:complexType name="ResultType"> <xs:sequence> <xs:element name="Mission" type="MissionTypeType"> @@ -558,6 +709,110 @@ </xs:extension> </xs:complexContent> </xs:complexType> + <xs:complexType name="VehicleExemptedTruckType"> + <xs:complexContent> + <xs:extension base="AbstractVehicleType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P236 / I.1.1.2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Manufacturer" type="vdecdef:ManufacturerType"> + <xs:annotation> + <xs:documentation>P235 / I.1.1.1 / #14</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="vdecdef:ManufacturerAddressType"> + <xs:annotation> + <xs:documentation>P252 / I.1.1.1 / #14</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VIN" type="vdecdef:VINType"> + <xs:annotation> + <xs:documentation>P238 / I.1.1.3 / #1</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LegislativeClass" type="vdecdef:LegislativeClassDeclarationType"> + <xs:annotation> + <xs:documentation>P251 / I.1.1.4 / #10</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="GrossVehicleMass"> + <xs:annotation> + <xs:documentation>P041 / I.1.1.6 / #12</xs:documentation> + </xs:annotation> + <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="CurbMassChassis"> + <xs:annotation> + <xs:documentation>P038 / I.1.1.8 / #16</xs:documentation> + <xs:documentation>P038 / I.1.1.8 / #16</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:VehicleCurbMassChassisType"> + <xs:attribute name="unit" type="MassUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P269 / I.1.1.10</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HybridElectricHDV" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P279 / I.1.1.11</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DualFuelVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P280 / I.1.1.12</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence> + <xs:element name="MaxNetPower1" minOccurs="0"> + <xs:annotation> + <xs:documentation>P277</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxNetPower2" minOccurs="0"> + <xs:annotation> + <xs:documentation>P278</xs:documentation> + </xs:annotation> + <xs:complexType> + <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> + <xs:element name="InputDataSignature" type="vdecdef:SignatureType"> + <xs:annotation> + <xs:documentation>I.3.1.3</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> <xs:complexType name="VehiclePerformanceType"> <xs:sequence> <xs:element name="AverageSpeed"> @@ -666,7 +921,7 @@ </xs:element> </xs:sequence> </xs:complexType> - <xs:complexType name="VehicleTruckType"> + <xs:complexType name="VehiclePrimaryBusType"> <xs:complexContent> <xs:extension base="AbstractVehicleType"> <xs:sequence> @@ -690,11 +945,6 @@ <xs:documentation>P238 / I.1.1.3 / #1</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="LegislativeClass" type="vdecdef:LegislativeClassDeclarationType"> - <xs:annotation> - <xs:documentation>P251 / I.1.1.4 / #10</xs:documentation> - </xs:annotation> - </xs:element> <xs:element name="GrossVehicleMass"> <xs:annotation> <xs:documentation>P041 / I.1.1.6 / #12</xs:documentation> @@ -745,21 +995,6 @@ <xs:documentation>VECTO / I.1.1.7 / #13</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="VocationalVehicle" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P270 / I.1.1.9</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="SleeperCab" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P276 / I.1.1.13</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="PTO" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P247 / I.1.3.8 / #31</xs:documentation> - </xs:annotation> - </xs:element> <xs:element name="ADAS" type="v2.1:AbstractAdvancedDriverAssistantSystemsType"/> <xs:element name="TorqueLimits" type="TorqueLimitsType" minOccurs="0"/> <xs:element name="Components" type="AbstractComponentsType"/> @@ -772,7 +1007,7 @@ </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="VehicleExemptedTruckType"> + <xs:complexType name="VehicleTruckType"> <xs:complexContent> <xs:extension base="AbstractVehicleType"> <xs:sequence> @@ -841,113 +1076,29 @@ <xs:documentation>P280 / I.1.1.12</xs:documentation> </xs:annotation> </xs:element> - <xs:sequence> - <xs:element name="MaxNetPower1" minOccurs="0"> - <xs:annotation> - <xs:documentation>P277</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="PowerUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="MaxNetPower2" minOccurs="0"> - <xs:annotation> - <xs:documentation>P278</xs:documentation> - </xs:annotation> - <xs:complexType> - <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> - <xs:element name="InputDataSignature" type="vdecdef:SignatureType"> - <xs:annotation> - <xs:documentation>I.3.1.3</xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="VehiclePrimaryBusType"> - <xs:complexContent> - <xs:extension base="AbstractVehicleType"> - <xs:sequence> - <xs:element name="Model" type="vdecdef:ModelType"> - <xs:annotation> - <xs:documentation>P236 / I.1.1.2</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="Manufacturer" type="vdecdef:ManufacturerType"> - <xs:annotation> - <xs:documentation>P235 / I.1.1.1 / #14</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="ManufacturerAddress" type="vdecdef:ManufacturerAddressType"> - <xs:annotation> - <xs:documentation>P252 / I.1.1.1 / #14</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="VIN" type="vdecdef:VINType"> - <xs:annotation> - <xs:documentation>P238 / I.1.1.3 / #1</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="GrossVehicleMass"> + <xs:element name="AxleConfiguration" type="xs:string"> <xs:annotation> - <xs:documentation>P041 / I.1.1.6 / #12</xs:documentation> - </xs:annotation> - <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="CurbMassChassis"> - <xs:annotation> - <xs:documentation>P038 / I.1.1.8 / #16</xs:documentation> - <xs:documentation>P038 / I.1.1.8 / #16</xs:documentation> - </xs:annotation> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="vdecdef:VehicleCurbMassChassisType"> - <xs:attribute name="unit" type="MassUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="ZeroEmissionVehicle" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P269 / I.1.1.10</xs:documentation> + <xs:documentation>P037 / I.1.1.5 / #11</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="HybridElectricHDV" type="xs:boolean"> + <xs:element name="VehicleGroup" type="VehicleGroupType"> <xs:annotation> - <xs:documentation>P279 / I.1.1.11</xs:documentation> + <xs:documentation>VECTO / I.1.1.7 / #13</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="DualFuelVehicle" type="xs:boolean"> + <xs:element name="VocationalVehicle" type="xs:boolean"> <xs:annotation> - <xs:documentation>P280 / I.1.1.12</xs:documentation> + <xs:documentation>P270 / I.1.1.9</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="AxleConfiguration" type="vdecdef:VehicleAxleConfigurationDeclarationType"> + <xs:element name="SleeperCab" type="xs:boolean"> <xs:annotation> - <xs:documentation>P037 / I.1.1.5 / #11</xs:documentation> + <xs:documentation>P276 / I.1.1.13</xs:documentation> </xs:annotation> </xs:element> - <xs:element name="VehicleGroup" type="VehicleGroupType"> + <xs:element name="PTO" type="xs:boolean"> <xs:annotation> - <xs:documentation>VECTO / I.1.1.7 / #13</xs:documentation> + <xs:documentation>P247 / I.1.3.8 / #31</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ADAS" type="v2.1:AbstractAdvancedDriverAssistantSystemsType"/> @@ -973,6 +1124,11 @@ <xs:enumeration value="Standard values"/> </xs:restriction> </xs:simpleType> + <xs:simpleType name="AngularVelocityUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="rpm"/> + </xs:restriction> + </xs:simpleType> <xs:simpleType name="CO2UnitType"> <xs:restriction base="xs:string"> <xs:enumeration value="g/km"/> @@ -981,6 +1137,11 @@ <xs:enumeration value="g/m³-km"/> </xs:restriction> </xs:simpleType> + <xs:simpleType name="DisplacementType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="ltr"/> + </xs:restriction> + </xs:simpleType> <xs:simpleType name="DistanceUnitType"> <xs:restriction base="xs:token"> <xs:enumeration value="km"/> @@ -1024,19 +1185,9 @@ <xs:enumeration value="Interurban"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="SpeedUnitType"> - <xs:restriction base="xs:token"> - <xs:enumeration value="km/h"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="VehicleGroupType"> - <xs:restriction base="xs:string"> - <xs:minLength value="1"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="AngularVelocityUnitType"> + <xs:simpleType name="PercentType"> <xs:restriction base="xs:string"> - <xs:enumeration value="rpm"/> + <xs:enumeration value="%"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="PowerUnitType"> @@ -1045,104 +1196,14 @@ <xs:enumeration value="W"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="DisplacementType"> - <xs:restriction base="xs:string"> - <xs:enumeration value="ltr"/> + <xs:simpleType name="SpeedUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km/h"/> </xs:restriction> </xs:simpleType> - <xs:simpleType name="PercentType"> + <xs:simpleType name="VehicleGroupType"> <xs:restriction base="xs:string"> - <xs:enumeration value="%"/> + <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> - <xs:complexType name="ADASType"> - <xs:sequence> - <xs:element name="EngineStopStart" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P271 / I.1.12.1</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="EcoRollWithoutEngineStop" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P272 / I.1.12.2</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="EcoRollWithEngineStop" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P273 / I.1.12.3</xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="PredictiveCruiseControl" type="xs:boolean"> - <xs:annotation> - <xs:documentation>P274 / I.1.12.4</xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:complexType name="EngineSpeedDrivingType"> - <xs:sequence> - <xs:element name="Min"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="Average"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - <xs:element name="Max"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:double"> - <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:complexType name="ComponentsTruckType"> - <xs:complexContent> - <xs:extension base="AbstractComponentsType"> - <xs:sequence> - <xs:element name="Engine" type="EngineType"/> - <xs:element name="Gearbox" type="GearboxType"/> - <xs:element name="TorqueConverter" type="TorqueconverterType" minOccurs="0"/> - <xs:element name="Retarder" type="RetarderType"/> - <xs:element name="Angledrive" type="AngledriveType" minOccurs="0"/> - <xs:element name="Axlegear" type="AxlegearType"/> - <xs:element name="AirDrag" type="AirdragType"/> - <xs:element name="AxleWheels" type="AxleWheelsType"/> - <xs:element name="Auxiliaries" type="AuxiliariesTruckType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="ComponentsPrimaryBusType"> - <xs:complexContent> - <xs:extension base="AbstractComponentsType"> - <xs:sequence> - <xs:element name="Engine" type="EngineType"/> - <xs:element name="Gearbox" type="GearboxType"/> - <xs:element name="TorqueConverter" type="TorqueconverterType" minOccurs="0"/> - <xs:element name="Retarder" type="RetarderType"/> - <xs:element name="Angledrive" type="AngledriveType" minOccurs="0"/> - <xs:element name="Axlegear" type="AxlegearType"/> - <xs:element name="AxleWheels" type="AxleWheelsType"/> - <xs:element name="Auxiliaries" type="v2.6:AbstractPrimaryVehicleAuxiliaryDataDeclarationType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="AbstractComponentsType" abstract="true"/> - <xs:complexType name="AbstractVehicleType" abstract="true"/> </xs:schema> diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 0a315711e3..3267434a6b 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -2446,6 +2446,12 @@ <None Include="TestData\Integration\VTPMode\GenericVehicle\VTP_rural_2Hz.vdri"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Integration\VTPMode\MediumLorry\VTP Testzyklus.vdri"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\VTPMode\MediumLorry\VTP_MediumLorry.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Jobs\12t Delivery Truck Engineering Efficiency.vecto"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> @@ -3381,6 +3387,9 @@ <SubType>Designer</SubType> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\Integration\Buses\vecto_vehicle-primary_heavyBus.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\Integration\Buses\vecto_vehicle-primary_heavyBus_nonSmart_ESS.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> @@ -3468,6 +3477,12 @@ <Content Include="TestData\Integration\VTPMode\GenericVehicle\Tractor_4x2_vehicle-class-5_Generic vehicle.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\Integration\VTPMode\MediumLorry\vecto_vehicle-medium_lorry_4x2F.RSLT_MANUFACTURER.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="TestData\Integration\VTPMode\MediumLorry\vecto_vehicle-medium_lorry_4x2F.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\Jobs\Tractor_4x2_vehicle-class-5_Generic vehicle.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> -- GitLab