diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb index c091b259bc2400670b5f34c3a122d3d5907bd1b7..44de66d06cc526ecd4e10b3e9ff0b604c810b827 100644 --- a/VECTO/Input Files/Engine.vb +++ b/VECTO/Input Files/Engine.vb @@ -288,7 +288,7 @@ Public Class Engine Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property @@ -307,7 +307,7 @@ Public Class Engine Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index 2863acb3e629eacf92e2b4980bc714af337dfebf..8f5efd97494bc795887794e936146495de53917a 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -304,7 +304,7 @@ Public Class Gearbox Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property @@ -324,7 +324,7 @@ Public Class Gearbox Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 16c2e433796baaaefc6d680cccfd4792cc7bd1d4..d09e844eb9250faf40281cd12a2c418982ee3767 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -278,14 +278,14 @@ Public Class Vehicle Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property Public ReadOnly Property Model As String Implements IComponentInputData.Model Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property @@ -305,7 +305,7 @@ Public Class Vehicle Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber Get ' Just for the interface. Value is not available in GUI yet. - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property @@ -343,7 +343,7 @@ Public Class Vehicle Public ReadOnly Property VIN As String Implements IVehicleDeclarationInputData.VIN Get - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property @@ -375,7 +375,7 @@ Public Class Vehicle Public ReadOnly Property ManufacturerAddress As String Implements IVehicleDeclarationInputData.ManufacturerAddress Get - Return TUGraz.VectoCore.Configuration.Constants.NOT_AVailABLE + Return TUGraz.VectoCore.Configuration.Constants.NOT_AVAILABLE End Get End Property diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index ec34b8123bd8886daad8a4468667576bb9a577e7..caf7233c1401eabf555400c5e2e8aaa05cd40cbc 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -1,33 +1,12 @@ -/* -* This file is part of VECTO. -* -* Copyright © 2012-2019 European Union -* -* Developed by Graz University of Technology, -* Institute of Internal Combustion Engines and Thermodynamics, -* Institute of Technical Informatics -* -* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved -* by the European Commission - subsequent versions of the EUPL (the "Licence"); -* You may not use VECTO except in compliance with the Licence. -* You may obtain a copy of the Licence at: -* -* https://joinup.ec.europa.eu/community/eupl/og_page/eupl -* -* Unless required by applicable law or agreed to in writing, VECTO -* distributed under the Licence is distributed on an "AS IS" basis, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the Licence for the specific language governing permissions and -* limitations under the Licence. -* -* Authors: -* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology -* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology -* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology -* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology -* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology -* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology -*/ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ namespace TUGraz.VectoCommon.Resources { using System; @@ -40,7 +19,7 @@ namespace TUGraz.VectoCommon.Resources { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class XMLNames { @@ -1467,6 +1446,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to CO2StandardsGroup. + /// </summary> + public static string Report_CO2StandardsGroup { + get { + return ResourceManager.GetString("Report_CO2StandardsGroup", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to CertificationMethod. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index 4e3ede03d84abf02fcaa1af1bf09777557fc483e..3388ab7af72828f838eed56a4da6234b768d3b69 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1053,4 +1053,7 @@ <data name="TorqueConverter_MaxInputSpeed" xml:space="preserve"> <value>MaxInputSpeed</value> </data> +<data name="Report_CO2StandardsGroup" xml:space="preserve"> + <value>CO2StandardsGroup</value> +</data> </root> \ No newline at end of file diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs index 0bcd8fd498503ed8b1b0206f0912d95b35a980be..e5a3c015c634e0173462c0c6f26fbabd69c25d5d 100644 --- a/VectoCore/VectoCore/Configuration/Constants.cs +++ b/VectoCore/VectoCore/Configuration/Constants.cs @@ -36,7 +36,7 @@ namespace TUGraz.VectoCore.Configuration { public static class Constants { - public const string NOT_AVailABLE = "N/A"; + public const string NOT_AVAILABLE = "N/A"; public static Second DefaultPowerShiftTime = 0.8.SI<Second>(); public const double RPMToRad = 2 * Math.PI / 60; diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs index d537d272bfaddaf726150eaf3914f0326c853aea..72b2c7a840c2cc4efb46cb34f206ee53299dd865 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs @@ -219,7 +219,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string Manufacturer { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public string Model @@ -230,7 +230,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string Date { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public CertificationMethod CertificationMethod @@ -240,7 +240,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string CertificationNumber { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public DigestData DigestValue diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs index f4134cb96aba726fd8895016e2127c64db02d562..2d8ad8224795fbdda9adb798a64aa3323dd2e300 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs @@ -473,7 +473,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string Manufacturer { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public string Model @@ -483,7 +483,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string Date { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public CertificationMethod CertificationMethod @@ -493,7 +493,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public string CertificationNumber { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public DigestData DigestValue diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 40a862d3d34b17cd2b51afa94b6cfdacceda4e97..9a1de31b7a4bb62b48bce6a89f72c2d6213955e9 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual string VIN { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public virtual LegislativeClass LegislativeClass @@ -196,7 +196,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual string ManufacturerAddress { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public virtual PerSecond EngineIdleSpeed @@ -579,17 +579,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual string Manufacturer { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public virtual string Model { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public virtual string Date { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public CertificationMethod CertificationMethod @@ -599,7 +599,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual string CertificationNumber { - get { return Constants.NOT_AVailABLE; } + get { return Constants.NOT_AVAILABLE; } } public virtual DigestData DigestValue diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV21InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV21InjectModule.cs index ea10c681251efe09ff1ea3c1050a884eb11478ad..77439ee53e07c002f28d8b523b8b580ad6497fed 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV21InjectModule.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV21InjectModule.cs @@ -57,9 +57,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules .To<XMLDeclarationADASDataProviderV21>().Named( XMLDeclarationADASDataProviderV21.QUALIFIED_XSD_TYPE); - Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationEngineDataProviderV21>().Named( - XMLDeclarationEngineDataProviderV21.QUALIFIED_XSD_TYPE); - // --------------------------------------------------------------------------------------- Bind<IXMLJobDataReader>().To<XMLJobDataReaderV21>() diff --git a/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs b/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs index 359cb23383f27a3c92138dc7527dae734b823103..16d76551bdc4647a6857f24e849bfaacb5bc7a4d 100644 --- a/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs +++ b/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs @@ -34,7 +34,9 @@ using System.Collections.Generic; using System.Data; using System.Linq; using System.Net.NetworkInformation; +using System.Text.RegularExpressions; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.Declaration @@ -62,13 +64,39 @@ namespace TUGraz.VectoCore.Models.Declaration Unknown } - public class WeightingGroupHelper + public static class WeightingGroupHelper { public const string Prefix = "Group"; public static WeightingGroup Parse(string groupStr) { return (Prefix + groupStr.Replace("-", "")).ParseEnum<WeightingGroup>(); } + + public static string ToXMLFormat(this WeightingGroup group) + { + switch (group) { + case WeightingGroup.Group1: + case WeightingGroup.Group2: + case WeightingGroup.Group3: + case WeightingGroup.Group11: + case WeightingGroup.Group12: + case WeightingGroup.Group16: + case WeightingGroup.Unknown: + return Constants.NOT_AVAILABLE; + case WeightingGroup.Group4UD: + case WeightingGroup.Group4RD: + case WeightingGroup.Group4LH: + case WeightingGroup.Group5RD: + case WeightingGroup.Group5LH: + case WeightingGroup.Group9RD: + case WeightingGroup.Group9LH: + case WeightingGroup.Group10RD: + case WeightingGroup.Group10LH: + return string.Join("-", Regex.Split(group.ToString().Replace(Prefix, ""), @"(\d+|\w+)").Where(x => !string.IsNullOrWhiteSpace(x))); + default: + return Constants.NOT_AVAILABLE; + } + } } public class WeightingGroups : LookupData<VehicleClass, bool, Watt, WeightingGroup> diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index 2bb060fe7225b78b0d3c9a2987454ee75b359404..8440b9a63750c69b61d8b3ee70f386d94fba7523 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -791,8 +791,50 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl forceLineSearch: DataBus.GearboxType.AutomaticTransmission() && !DataBus.TCLocked); return operatingPoint; - } catch (Exception) { - Log.Error("Failed to find operating point for braking power! absTime: {0}", absTime); + } catch (VectoSearchFailedException vse) { + Log.Error("Failed to find operating point for braking power! absTime: {0} {1}", absTime, vse); + if (DataBus.GearboxType.AutomaticTransmission() && !DataBus.TCLocked) { + // AT transmission in TC gear - maybe search failed because engine speed 'jumps' during + // search and cannot reach drag curve + // take an operating point that is + try { + DataBus.BrakePower = SearchAlgorithm.Search(DataBus.BrakePower, deltaPower, + DataBus.BrakePower * 0.01, + getYValue: result => { + var response = (ResponseDryRun)result; + return DataBus.ClutchClosed(absTime) + ? response.DeltaDragLoad + : response.GearboxPowerRequest; + }, + evaluateFunction: x => { + DataBus.BrakePower = x; + operatingPoint = ComputeTimeInterval(operatingPoint.Acceleration, ds); + + IterationStatistics.Increment(this, "SearchBrakingPower"); + DriverAcceleration = operatingPoint.Acceleration; + return NextComponent.Request(absTime, operatingPoint.SimulationInterval, + operatingPoint.Acceleration, gradient, + true); + }, + criterion: result => { + var response = (ResponseDryRun)result; + var delta = DataBus.ClutchClosed(absTime) + ? response.DeltaDragLoad + : response.GearboxPowerRequest; + return Math.Min(delta.Value(), 0); + }, + forceLineSearch: true); + return operatingPoint; + } catch (Exception e2) { + Log.Error("Failed to find operating point for braking power (attempt 2)! absTime: {0} {1}", absTime, e2); + throw; + } + + } else { + throw; + } + } catch (Exception e) { + Log.Error("Failed to find operating point for braking power! absTime: {0} {1}", absTime, e); throw; } } diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index b774f06cdc0851f172bdb0329d0c219c0511ecb0..36b58a4360776a2480565c00ab087741fba6ce86 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -813,9 +813,9 @@ namespace TUGraz.VectoCore.OutputData ? "" : data.CertificationNumber; } else { - row[ANGLEDRIVE_MANUFACTURER] = Constants.NOT_AVailABLE; - row[ANGLEDRIVE_MODEL] = Constants.NOT_AVailABLE; - row[ANGLEDRIVE_RATIO] = Constants.NOT_AVailABLE; + row[ANGLEDRIVE_MANUFACTURER] = Constants.NOT_AVAILABLE; + row[ANGLEDRIVE_MODEL] = Constants.NOT_AVAILABLE; + row[ANGLEDRIVE_RATIO] = Constants.NOT_AVAILABLE; row[ANGLEDRIVE_CERTIFICATION_METHOD] = ""; row[ANGLEDRIVE_CERTIFICATION_NUMBER] = ""; } @@ -832,8 +832,8 @@ namespace TUGraz.VectoCore.OutputData ? "" : data.CertificationNumber; } else { - row[RETARDER_MANUFACTURER] = Constants.NOT_AVailABLE; - row[RETARDER_MODEL] = Constants.NOT_AVailABLE; + row[RETARDER_MANUFACTURER] = Constants.NOT_AVAILABLE; + row[RETARDER_MODEL] = Constants.NOT_AVAILABLE; row[RETARDER_CERTIFICATION_METHOD] = ""; row[RETARDER_CERTIFICATION_NUMBER] = ""; } @@ -871,8 +871,8 @@ namespace TUGraz.VectoCore.OutputData row[GEAR_RATIO_LAST_GEAR] = data.Gears.Count > 0 ? (ConvertedSI)data.Gears.Last().Value.Ratio.SI<Scalar>() : (ConvertedSI)0.SI<Scalar>(); - row[TORQUECONVERTER_MANUFACTURER] = Constants.NOT_AVailABLE; - row[TORQUECONVERTER_MODEL] = Constants.NOT_AVailABLE; + row[TORQUECONVERTER_MANUFACTURER] = Constants.NOT_AVAILABLE; + row[TORQUECONVERTER_MODEL] = Constants.NOT_AVAILABLE; row[TORQUE_CONVERTER_CERTIFICATION_METHOD] = ""; row[TORQUE_CONVERTER_CERTIFICATION_NUMBER] = ""; } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs index a4658ece09855d6967dbd8d76da234160d55c91f..80bb2d5b80a93c9b7f0f5bcb345cf5a07dfc03d4 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs @@ -52,7 +52,8 @@ namespace TUGraz.VectoCore.OutputData.XML { public class XMLCustomerReport { - public const string CURRENT_SCHEMA_VERSION = "0.7"; + public const string SCHEMA_VERSION_STRING = "0.7"; + public const string CURRENT_SCHEMA_VERSION = "0.7.1"; protected readonly XElement VehiclePart; @@ -70,14 +71,17 @@ namespace TUGraz.VectoCore.OutputData.XML private Kilogram _weightedPayload = 0.SI<Kilogram>(); - public XMLCustomerReport() + public XMLCustomerReport(XMLDeclarationReport xmlDeclarationReport) { + DeclarationReport = xmlDeclarationReport; di = "http://www.w3.org/2000/09/xmldsig#"; tns = "urn:tugraz:ivt:VectoAPI:CustomerOutput:v" + CURRENT_SCHEMA_VERSION; VehiclePart = new XElement(tns + XMLNames.Component_Vehicle); Results = new XElement(tns + XMLNames.Report_Results); } + public XMLDeclarationReport DeclarationReport { get; } + public void Initialize(VectoRunData modelData) { var exempted = modelData.Exempted; @@ -96,6 +100,7 @@ namespace TUGraz.VectoCore.OutputData.XML exempted ? ExemptedData(modelData) : new[] { new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), + new XElement(tns + XMLNames.Report_CO2StandardsGroup, DeclarationReport.WeightingGroup.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab), GetADAS(modelData.VehicleData.ADAS) @@ -241,7 +246,7 @@ namespace TUGraz.VectoCore.OutputData.XML vehicle.Add(InputDataIntegrity); retVal.Add(new XProcessingInstruction("xml-stylesheet", "href=\"https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/CSS/VectoReports.css\"")); retVal.Add(new XElement(tns + XMLNames.VectoCustomerReport, - new XAttribute("schemaVersion", CURRENT_SCHEMA_VERSION), + new XAttribute("schemaVersion", SCHEMA_VERSION_STRING), new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), new XAttribute("xmlns", tns), new XAttribute(XNamespace.Xmlns + "di", di), diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index c3f86038c1f370dbddf27b6e71946875a56f6c16..00947fec696a329bebdb8fadc315bce366d62152 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -170,8 +170,8 @@ namespace TUGraz.VectoCore.OutputData.XML public XMLDeclarationReport(IReportWriter writer = null) : base(writer) { - _manufacturerReport = new XMLManufacturerReport(); - _customerReport = new XMLCustomerReport(); + _manufacturerReport = new XMLManufacturerReport(this); + _customerReport = new XMLCustomerReport(this); _monitoringReport = new XMLMonitoringReport(_manufacturerReport); } @@ -227,19 +227,21 @@ namespace TUGraz.VectoCore.OutputData.XML public override void InitializeReport(VectoRunData modelData) { - var weightingGroup = modelData.Exempted + WeightingGroup = modelData.Exempted ? WeightingGroup.Unknown : DeclarationData.WeightingGroup.Lookup( modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab, modelData.EngineData.RatedPowerDeclared); - _weightingFactors = weightingGroup == WeightingGroup.Unknown + _weightingFactors = WeightingGroup == WeightingGroup.Unknown ? ZeroWeighting - : DeclarationData.WeightingFactors.Lookup(weightingGroup); + : DeclarationData.WeightingFactors.Lookup(WeightingGroup); _manufacturerReport.Initialize(modelData); _customerReport.Initialize(modelData); _monitoringReport.Initialize(modelData); } + public WeightingGroup WeightingGroup { get; protected set; } + private static IDictionary<Tuple<MissionType, LoadingType>, double> ZeroWeighting { get { diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs index 58f638a3bce93174894a51592542d189ef5685de..f99380d60b4e64fbe2785d16e69aecbf9e682f01 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationWriter.cs @@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.OutputData.XML return new XElement(tns + XMLNames.Component_Vehicle, new XAttribute(XMLNames.Component_ID_Attr, id), - GetDefaultComponentElements(vehicle.CertificationNumber, vehicle.Model, Constants.NOT_AVailABLE), + GetDefaultComponentElements(vehicle.CertificationNumber, vehicle.Model, Constants.NOT_AVAILABLE), new XElement(tns + XMLNames.Vehicle_LegislativeClass, "N3"), new XElement(tns + XMLNames.Vehicle_VehicleCategory, vehicle.VehicleCategory.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_AxleConfiguration, vehicle.AxleConfiguration.GetName()), @@ -300,7 +300,7 @@ namespace TUGraz.VectoCore.OutputData.XML return new XElement((ns ?? tns) + XMLNames.Component_Axlegear, new XElement(tns + XMLNames.ComponentDataWrapper, new XAttribute(XMLNames.Component_ID_Attr, typeId), - GetDefaultComponentElements(typeId, Constants.NOT_AVailABLE), + GetDefaultComponentElements(typeId, Constants.NOT_AVAILABLE), new XElement(tns + "LineType", "Single portal axle"), new XElement(tns + XMLNames.Axlegear_Ratio, data.Ratio.ToXMLFormat(3)), new XElement(tns + XMLNames.Component_CertificationMethod, "Standard values"), @@ -375,7 +375,7 @@ namespace TUGraz.VectoCore.OutputData.XML return new XElement((ns ?? tns) + XMLNames.Component_AirDrag, new XElement(tns + XMLNames.ComponentDataWrapper, new XAttribute(XMLNames.Component_ID_Attr, id), - GetDefaultComponentElements(data.Model, Constants.NOT_AVailABLE), + GetDefaultComponentElements(data.Model, Constants.NOT_AVAILABLE), new XElement(tns + "CdxA_0", data.AirDragArea.Value().ToXMLFormat(2)), new XElement(tns + "TransferredCdxA", data.AirDragArea.Value().ToXMLFormat(2)), new XElement(tns + XMLNames.AirDrag_DeclaredCdxA, data.AirDragArea.Value().ToXMLFormat(2))), diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs index b8f567debb5a504c94addf328d45c92821d0ad3b..1a7bf845c97fd3e7460036cace11ef2bf51a7c7a 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs @@ -53,7 +53,8 @@ namespace TUGraz.VectoCore.OutputData.XML { public class XMLManufacturerReport { - public const string CURRENT_SCHEMA_VERSION = "0.7"; + public const string SCHEMA_VERSION_STRING = "0.7"; + public const string CURRENT_SCHEMA_VERSION = "0.7.1"; protected XElement VehiclePart; @@ -66,14 +67,17 @@ namespace TUGraz.VectoCore.OutputData.XML private bool _allSuccess = true; - public XMLManufacturerReport() + public XMLManufacturerReport(XMLDeclarationReport xmlDeclarationReport) { + DeclarationReport = xmlDeclarationReport; di = "http://www.w3.org/2000/09/xmldsig#"; tns = "urn:tugraz:ivt:VectoAPI:DeclarationOutput:v" + CURRENT_SCHEMA_VERSION; VehiclePart = new XElement(tns + XMLNames.Component_Vehicle); Results = new XElement(tns + XMLNames.Report_Results); } + public XMLDeclarationReport DeclarationReport { get; } + public void Initialize(VectoRunData modelData) { var exempted = modelData.Exempted; @@ -93,6 +97,7 @@ namespace TUGraz.VectoCore.OutputData.XML : new[] { new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), + new XElement(tns + XMLNames.Report_CO2StandardsGroup, DeclarationReport.WeightingGroup.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab), new XElement(tns + XMLNames.Vehicle_PTO, modelData.PTO != null), @@ -405,7 +410,7 @@ namespace TUGraz.VectoCore.OutputData.XML vehicle.Add(InputDataIntegrity); retVal.Add(new XProcessingInstruction("xml-stylesheet", "href=\"https://citnet.tech.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/CSS/VectoReports.css\"")); retVal.Add(new XElement(tns + XMLNames.VectoManufacturerReport, - new XAttribute("schemaVersion", CURRENT_SCHEMA_VERSION), + new XAttribute("schemaVersion", SCHEMA_VERSION_STRING), new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), new XAttribute("xmlns", tns), new XAttribute(XNamespace.Xmlns + "di", di), diff --git a/VectoCore/VectoCore/OutputData/XML/XMLMonitoringReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLMonitoringReport.cs index 341db6c514f0581284104fa18b51ec436ea03140..9257578772e7ac8856e1b2dbb4be87b57563aba3 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLMonitoringReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLMonitoringReport.cs @@ -44,7 +44,9 @@ namespace TUGraz.VectoCore.OutputData.XML { public class XMLMonitoringReport { - public const string CURRENT_SCHEMA_VERSION = "0.7"; + public const string SCHEMA_VERSION_STRING = "0.7"; + + public const string CURRENT_SCHEMA_VERSION = "0.7.1"; private XMLManufacturerReport _manufacturerReport; @@ -97,7 +99,7 @@ namespace TUGraz.VectoCore.OutputData.XML retVal.Add( new XElement( tns + "VectoMonitoring", - new XAttribute("schemaVersion", CURRENT_SCHEMA_VERSION), + new XAttribute("schemaVersion", SCHEMA_VERSION_STRING), new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName), new XAttribute("xmlns", tns), new XAttribute(XNamespace.Xmlns + "di", di), diff --git a/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.0.7.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.0.7.1.xsd new file mode 100644 index 0000000000000000000000000000000000000000..293d4f3dc0ea34aeb6fc8a330f227f2f1749d520 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.0.7.1.xsd @@ -0,0 +1,241 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vmrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" xmlns:ns1="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7.1" targetNamespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7.1" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" schemaLocation="VectoOutputManufacturer.0.7.1.xsd"/> + <xs:element name="VectoMonitoring"> + <xs:complexType> + <xs:sequence> + <xs:element name="ManufacturerRecord" type="vmrf:VectoOutputManufacturerType"/> + <xs:element name="AdditionalData"> + <xs:complexType> + <xs:sequence> + <xs:element name="Vehicle"> + <xs:complexType> + <xs:sequence> + <xs:element name="Make" type="xs:string"> + <xs:annotation> + <xs:documentation>#15</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="Engine"> + <xs:complexType> + <xs:sequence> + <xs:element name="WHTC"> + <xs:complexType> + <xs:sequence> + <xs:element name="CO2"> + <xs:annotation> + <xs:documentation>#75</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/kWh"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelConsumption"> + <xs:annotation> + <xs:documentation>#76</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/kWh"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="WHSC"> + <xs:complexType> + <xs:sequence> + <xs:element name="CO2"> + <xs:annotation> + <xs:documentation>#77</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/kWh"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelConsumption"> + <xs:annotation> + <xs:documentation>#78</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/kWh"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Gearbox"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer" type="xs:string"> + <xs:annotation> + <xs:documentation>#24</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="xs:string"> + <xs:annotation> + <xs:documentation>#24</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Make" type="xs:string"> + <xs:annotation> + <xs:documentation>#25</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Axlegear"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer" type="xs:string"> + <xs:annotation> + <xs:documentation>#32</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="xs:string"> + <xs:annotation> + <xs:documentation>#32</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Make" type="xs:string"> + <xs:annotation> + <xs:documentation>#33</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="AxleWheels"> + <xs:complexType> + <xs:sequence> + <xs:element name="Axle" minOccurs="2" maxOccurs="4"> + <xs:complexType> + <xs:sequence> + <xs:element name="Tyre"> + <xs:complexType> + <xs:sequence> + <xs:element name="Manufacturer" type="xs:string"> + <xs:annotation> + <xs:documentation>#39</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="xs:string"> + <xs:annotation> + <xs:documentation>#39</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Make" type="xs:string"> + <xs:annotation> + <xs:documentation>#40</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="AdvancedReducingTechnologies"> + <xs:annotation> + <xs:documentation>#74</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="Entry" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute name="category" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="advanced aerodynamic measures"/> + <xs:enumeration value="advanced rolling resistance measures"/> + <xs:enumeration value="advanced drivetrain technologies"/> + <xs:enumeration value="advanced engine technologies"/> + <xs:enumeration value="advanced auxiliary technologies"/> + <xs:enumeration value="additional ADAS technologies"/> + <xs:enumeration value="advanced powertrain integration and hybridisation"/> + <xs:enumeration value="other"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="VectoLicenseNbr" type="xs:string"> + <xs:annotation> + <xs:documentation>#72</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.xsd b/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.xsd index b2cd8b1b8ef878b41074466df970e372e26e7cdd..b084c4d5aea31bccfcab2a679d1702046898287b 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoMonitoring.xsd @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="urn:tugraz:ivt:VectoAPI:MonitoringOutput" xmlns:ns2="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7" targetNamespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <!-- This is a convienience file that imports the schema for all supported versions of customer information file and all supported declaration definitions --> <xs:import namespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7" schemaLocation="VectoMonitoring.0.7.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7.1" schemaLocation="VectoMonitoring.0.7.1.xsd"/> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.7.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.7.1.xsd new file mode 100644 index 0000000000000000000000000000000000000000..0f9f51b46aabb63f380be133885bee234cf6eca2 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.7.1.xsd @@ -0,0 +1,474 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<!--W3C XML Schema generated by XMLSpy vXMLSpy Professional Edition v2016 rel. 2 (x64) (http://www.altova.com)--> +<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vdecdef="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" targetNamespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7.1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.7"> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> + <xs:element name="VectoCustomerInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="Data"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="VectoOutputDataType"/> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="Signature" type="vdecdef:SignatureType"/> + </xs:sequence> + <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/> + </xs:complexType> + </xs:element> + <xs:complexType name="CO2Type"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="CO2UnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="FuelConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="FuelConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="ResultType"> + <xs:sequence> + <xs:element name="Mission" type="MissionTypeType"/> + <xs:choice> + <xs:sequence> + <xs:element name="Payload"> + <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="FuelType" type="xs:string"/> + <xs:element name="AverageSpeed"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"/> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"/> + </xs:sequence> + <xs:element name="Error" type="xs:string"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="status" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="VectoOutputDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="VehicleType"/> + <xs:element name="ResultDataSignature" type="vdecdef:SignatureType"> + <xs:annotation> + <xs:documentation>II.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Results"> + <xs:complexType> + <xs:sequence> + <xs:element name="Status"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Result" type="ResultType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>II.2.1, II.2.2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Summary" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="SpecificCO2Emissions"> + <xs:annotation> + <xs:documentation>II.2.3</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="gCO2/tkm"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AveragePayload"> + <xs:annotation> + <xs:documentation>II.2.4</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="t"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:element name="ExemptedVehicle"> + <xs:complexType/> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>II.2.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="vdecdef:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>II.2.5</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:complexType> + <xs:complexType name="VehiclePerformanceType"> + <xs:sequence/> + </xs:complexType> + <xs:complexType name="VehicleType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P236 / II.1.1.7</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Manufacturer" type="vdecdef:ManufacturerType"> + <xs:annotation> + <xs:documentation>P235 / II.1.1.6</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ManufacturerAddress" type="vdecdef:ManufacturerAddressType"> + <xs:annotation> + <xs:documentation>P252 / II.1.1.6</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VIN" type="vdecdef:VINType"> + <xs:annotation> + <xs:documentation>P238 / II.1.1.1</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LegislativeClass" type="vdecdef:LegislativeClassDeclarationType"> + <xs:annotation> + <xs:documentation>P251 / II.1.1.2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="GrossVehicleMass"> + <xs:annotation> + <xs:documentation>P041 / II.1.1.4</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 / II.1.1.8</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 / II.1.1.10</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HybridElectricHDV" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P279 / II.1.1.11</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DualFuelVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P280 / II.1.1.12</xs:documentation> + </xs:annotation> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="AxleConfiguration" type="vdecdef:VehicleAxleConfigurationDeclarationType"> + <xs:annotation> + <xs:documentation>P037 / II.1.1.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleGroup" type="VehicleGroupType"> + <xs:annotation> + <xs:documentation>VECTO / II.1.1.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CO2StandardsGroup"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VocationalVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P270 / II.1.1.9</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SleeperCab" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P267 / II.1.1.13</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="ADAS" type="ADASType"/> + <xs:element name="EngineRatedPower"> + <xs:annotation> + <xs:documentation>P250 / II.1.2.1</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:EngineRatedPower"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="EngineDisplacement"> + <xs:annotation> + <xs:documentation>P061 / II.1.2.2</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DisplacementType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelType" type="vdecdef:FuelTypeType"> + <xs:annotation> + <xs:documentation>P193 / II.1.2.3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TransmissionMainCertificationMethod" type="vdecdef:GearboxCertificationOptionType"> + <xs:annotation> + <xs:documentation>P154 / II.1.2.4</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TransmissionType" type="vdecdef:GearboxTransmissionTypeType"> + <xs:annotation> + <xs:documentation>P076 / II.1.2.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="GearsCount"> + <xs:annotation> + <xs:documentation>P199 / II.1.2.6</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Retarder" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P052 / II.1.2.7</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AxleRatio" type="vdecdef:AxlegearRatioType"> + <xs:annotation> + <xs:documentation>P150 / II.1.2.8</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AverageRRCMotorVehicleTyres" type="vdecdef:TyreRRCISOType"> + <xs:annotation> + <xs:documentation>P046 / II.1.2.9 // arithmetic average of RRC over all truck tires</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="AverageFuelEfficiencyLabelMotorVehicleTyres"> + <xs:annotation> + <xs:documentation>II.1.2.10 // classification of AverageRRCMotorVehicleTyres according to 1222/2009 C3 tyres </xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:minLength value="1"/> + <xs:maxLength value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + <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:choice> + <xs:element name="InputDataSignature" type="vdecdef:SignatureType"/> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="AccelerationUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="m/s²"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="AirdragCertificationOptionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="Measured"/> + <xs:enumeration value="Standard values"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="CO2UnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="DistanceUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="FuelConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + <xs:enumeration value="l/100km"/> + <xs:enumeration value="l/t-km"/> + <xs:enumeration value="l/p-km"/> + <xs:enumeration value="l/m³-km"/> + <xs:enumeration value="MJ/km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MassUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="kg"/> + <xs:enumeration value="t"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MissionTypeType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="Long Haul EMS"/> + <xs:enumeration value="Long Haul"/> + <xs:enumeration value="Regional Delivery EMS"/> + <xs:enumeration value="Regional Delivery"/> + <xs:enumeration value="Urban Delivery"/> + <xs:enumeration value="Municipal Utility"/> + <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:restriction base="xs:string"> + <xs:enumeration value="ltr"/> + </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/VectoOutputCustomer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd index 243edf30180c83a4ae7e92b58f2059f1676e637b..7ab5c7037a75ce81cbb95bbb86b6d5c6ab896801 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.xsd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:tugraz:ivt:VectoAPI:CustomerOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="urn:tugraz:ivt:VectoAPI:CustomerOutput" xmlns:ns2="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.5" xmlns:ns3="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7" targetNamespace="urn:tugraz:ivt:VectoAPI:CustomerOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <!-- This is a convienience file that imports the schema for all supported versions of customer information file and all supported declaration definitions @@ -8,4 +8,5 @@ --> <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.5" schemaLocation="VectoOutputCustomer.0.5.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7" schemaLocation="VectoOutputCustomer.0.7.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.7.1" schemaLocation="VectoOutputCustomer.0.7.1.xsd"/> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.7.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.7.1.xsd new file mode 100644 index 0000000000000000000000000000000000000000..60231bf98a83a72028e129fb44c32882e8d319b2 --- /dev/null +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.7.1.xsd @@ -0,0 +1,965 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) --> +<!--W3C XML Schema generated by XMLSpy vXMLSpy Professional Edition v2016 rel. 2 (x64) (http://www.altova.com)--> +<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vdecdef="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.7"> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/> + <xs:element name="VectoOutput"> + <xs:annotation> + <xs:documentation>Comment describing your root element</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="VectoOutputManufacturerType"> + <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:complexType name="AirdragType"> + <xs:sequence> + <xs:element name="Model" minOccurs="0"> + <xs:annotation> + <xs:documentation>P241 / I.1.8.1 / #96</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="AirdragCertificationOptionType"> + <xs:annotation> + <xs:documentation>VECTO / I.1.8.2 / #22</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P268 / I.1.8.3 / #3</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token" minOccurs="0"> + <xs:annotation> + <xs:documentation>? / I.1.8.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CdxA" type="vdecdef:AirdragCdxAType"> + <xs:annotation> + <xs:documentation>P245 / I.1.8.4 / #23</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AngledriveType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P221 / I.1.6.1 / #93</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="vdecdef:AngledriveCertificationOptionType"> + <xs:annotation> + <xs:documentation>P258 / I.1.6.3 / #37</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P265 / I.1.6.2 / #94</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.6.5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Ratio" type="vdecdef:AngledriveRatioType"> + <xs:annotation> + <xs:documentation>P176 / I.1.6.4 / #38</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AuxiliariesType"> + <xs:sequence> + <xs:element name="FanTechnology" type="vdecdef:AuxFanTechnologyType"> + <xs:annotation> + <xs:documentation>P181 / I.1.10.1 / #52</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SteeringPumpTechnology" maxOccurs="4"> + <xs:annotation> + <xs:documentation>P182 / I.1.10.2 / #53</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:AuxSPTechnologyType"/> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ElectricSystemTechnology" type="vdecdef:AuxESTechnologyType"> + <xs:annotation> + <xs:documentation>P183 / I.1.10.3 / #54</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="PneumaticSystemTechnology" type="vdecdef:AuxPSTechnologyType"> + <xs:annotation> + <xs:documentation>P184 / I.1.10.4 / #55</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HVACTechnology" type="vdecdef:AuxHVACTechnologyType"> + <xs:annotation> + <xs:documentation>P185</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxlegearType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P216 / I.1.7.1 / #95</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="vdecdef:AxlegearCertificationOptionType"> + <xs:annotation> + <xs:documentation>P256 I.1.7.3 / #34</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P264 / I.1.7.2 / #5</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.7.6</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="LineType" type="vdecdef:AxlegearLineTypeType"> + <xs:annotation> + <xs:documentation>P253 / I.1.7.4 / #35</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Ratio" type="vdecdef:AxlegearRatioType"> + <xs:annotation> + <xs:documentation>P150 / I.1.7.5 / #36</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="AxleType"> + <xs:sequence> + <xs:element name="TyreDimension" type="vdecdef:TyreDimensionType"> + <xs:annotation> + <xs:documentation>P108 / I.1.9.1, I.1.9.4, I.1.9.8, I.1.9.12 / #41, #43, #46, #49</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TyreCertificationNumber" type="vdecdef:CertificationNumberType"> + <xs:annotation> + <xs:documentation>P267 / I.1.9.2, I.1.9.6, I.1.9.10, I.1.9.14, #6, #7, #8, #9</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.9.3a, I.1.9.7a, I.1.9.11a, I.1.9.16</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TyreRRCDeclared" type="vdecdef:TyreRRCISOType"> + <xs:annotation> + <xs:documentation>P046 / I.1.9.3, I.1.9.7, I.1.9.11, I.1.9.15 / #42, #45, #48, #51</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="TwinTyres" type="vdecdef:AxleTwinTyresType"> + <xs:annotation> + <xs:documentation>P045 / I.1.9.5, I.1.9.9, I.1.9.13, #44, #47, #50</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:attribute name="axleNumber" use="required"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="1"/> + <xs:maxInclusive value="4"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="AxleWheelsType"> + <xs:sequence minOccurs="2" maxOccurs="4"> + <xs:element name="Axle" type="AxleType"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="CO2Type"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="CO2UnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="ComponentDescriptionType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"/> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType"/> + <xs:element name="DigestValue" type="xs:token"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="EngineType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P201 / I.1.2.1 / #85</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType"> + <xs:annotation> + <xs:documentation>P261 / I.1.2.2 / #2</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.2.8</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="RatedPower"> + <xs:annotation> + <xs:documentation>P250 / I.1.2.3 / #17</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:EngineRatedPower"> + <xs:attribute name="unit" type="PowerUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="IdlingSpeed"> + <xs:annotation> + <xs:documentation>P063, P198 / I.1.2.4 / #18</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:EngineDeclaredSpeedType"> + <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="RatedSpeed"> + <xs:annotation> + <xs:documentation>P249 / I.1.2.5 / #19</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="vdecdef:EngineDeclaredSpeedType"> + <xs:attribute name="unit" type="AngularVelocityUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Displacement"> + <xs:annotation> + <xs:documentation>P061 / I.1.2.6 / #20</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DisplacementType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FuelType" type="vdecdef:FuelTypeType"> + <xs:annotation> + <xs:documentation>P193 / I.1.2.7 / #21</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="FuelConsumptionType"> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="FuelConsumptionUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:complexType name="GearboxType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P205 / I.1.3.1 / #86</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="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"> + <xs:annotation> + <xs:documentation>I.2.1.1 / #56</xs:documentation> + </xs:annotation> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Distance"> + <xs:annotation> + <xs:documentation>I.2.2.8 / #67</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="DistanceUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="SimulationParameters" type="SimulationParametersType"/> + <xs:element name="VehiclePerformance" type="VehiclePerformanceType"/> + <xs:element name="FuelConsumption" type="FuelConsumptionType" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.1 - I.2.3.12 / #69</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CO2" type="CO2Type" maxOccurs="unbounded"> + <xs:annotation> + <xs:documentation>I.2.3.13 - I.2.3.16 / #68</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + <xs:sequence> + <xs:element name="Error" type="xs:string"/> + <xs:element name="ErrorDetails" type="xs:string"/> + </xs:sequence> + </xs:choice> + </xs:sequence> + <xs:attribute name="status" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="RetarderType"> + <xs:sequence> + <xs:element name="RetarderType" type="vdecdef:RetarderTypeType"> + <xs:annotation> + <xs:documentation>P052 / I.1.3.7 / #30</xs:documentation> + </xs:annotation> + </xs:element> + <xs:sequence minOccurs="0"> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P226 / I.1.4.1 / #87</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="vdecdef:RetarderCertificationOptionType"> + <xs:annotation> + <xs:documentation>P255 / I.1.4.3 / #89</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P266 / I.1.4.2 / #88</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.4.4</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:sequence> + </xs:complexType> + <xs:complexType name="SimulationParametersType"> + <xs:sequence> + <xs:element name="TotalVehicleMass"> + <xs:annotation> + <xs:documentation>I.2.1.4 / #59</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="Payload"> + <xs:annotation> + <xs:documentation>I.2.1.2 / #57</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="FuelType" type="xs:string"> + <xs:annotation> + <xs:documentation>P193, P275 / I.2.1.3 / #58</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TorqueconverterType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P211 / I.1.5.1 / #90</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationMethod" type="vdecdef:TorqueConverterCertificationOptionType"> + <xs:annotation> + <xs:documentation>P257 / I.1.5.3 / #92</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CertificationNumber" type="vdecdef:CertificationNumberType" minOccurs="0"> + <xs:annotation> + <xs:documentation>P263 / I.1.5.2 / #91</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DigestValue" type="xs:token"> + <xs:annotation> + <xs:documentation>? / I.1.5.4</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="TorqueLimitsEntryType"> + <xs:attribute name="gear" type="vdecdef:GearboxGearNumberType" use="required"> + <xs:annotation> + <xs:documentation>P196</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="torqueLimit" type="vdecdef:TorqueLimitEntryMaxTorqueType" use="required"> + <xs:annotation> + <xs:documentation>P197 / P194</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="unit" use="required"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="Nm"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="torqueLimitPercent" use="required"> + <xs:annotation> + <xs:documentation>/ I.1.11.*</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:float"> + <xs:minInclusive value="0.0"/> + <xs:maxInclusive value="100.0"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + </xs:complexType> + <xs:complexType name="TorqueLimitsType"> + <xs:sequence> + <xs:element name="Entry" maxOccurs="unbounded"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="TorqueLimitsEntryType"/> + </xs:complexContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="VectoOutputDataType"> + <xs:sequence> + <xs:element name="Vehicle" type="VehicleType"/> + <xs:element name="Results"> + <xs:complexType> + <xs:sequence> + <xs:element name="Status"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="success"/> + <xs:enumeration value="error"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="Result" type="ResultType" maxOccurs="unbounded"/> + </xs:sequence> + <xs:element name="ExemptedVehicle"> + <xs:complexType/> + </xs:element> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ApplicationInformation"> + <xs:complexType> + <xs:sequence> + <xs:element name="SimulationToolVersion" type="xs:string"> + <xs:annotation> + <xs:documentation>I.3.1.1 / #70</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="Date" type="vdecdef:DateTimeWithTimezone"> + <xs:annotation> + <xs:documentation>I.3.1.2 / #71</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="id" type="xs:NCName" use="required"/> + </xs:complexType> + <xs:complexType name="VehiclePerformanceType"> + <xs:sequence> + <xs:element name="AverageSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.1 / #60</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageDrivingSpeed"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MinSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.2 / #61</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxSpeed"> + <xs:annotation> + <xs:documentation>I.2.2.3 / #62</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="SpeedUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxDeceleration"> + <xs:annotation> + <xs:documentation>I.2.2.4 / #63</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="MaxAcceleration"> + <xs:annotation> + <xs:documentation>I.2.2.5 / #64</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="AccelerationUnitType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="FullLoadDrivingtimePercentage"> + <xs:annotation> + <xs:documentation>I.2.2.6 / #65</xs:documentation> + </xs:annotation> + <xs:simpleType> + <xs:restriction base="xs:double"> + <xs:minInclusive value="0"/> + <xs:maxInclusive value="100"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="GearshiftCount" type="xs:int"> + <xs:annotation> + <xs:documentation>I.2.2.7 / #66</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EngineSpeedDriving" type="EngineSpeedDrivingType"/> + <xs:element name="AverageGearboxEfficiency"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="AverageAxlegearEfficiency"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:double"> + <xs:attribute name="unit" type="PercentType" use="required"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:complexType name="VehicleType"> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"> + <xs:annotation> + <xs:documentation>P236 / I.1.1.2 / #79</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 / #81</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="HybridElectricHDV" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P279 / I.1.1.11 / #82</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="DualFuelVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P280 / I.1.1.12 / #83</xs:documentation> + </xs:annotation> + </xs:element> + <xs:choice> + <xs:sequence> + <xs:element name="AxleConfiguration" type="vdecdef:VehicleAxleConfigurationDeclarationType"> + <xs:annotation> + <xs:documentation>P037 / I.1.1.5 / #11</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="VehicleGroup" type="VehicleGroupType"> + <xs:annotation> + <xs:documentation>VECTO / I.1.1.7 / #13</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="CO2StandardsGroup"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:minLength value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VocationalVehicle" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P270 / I.1.1.9 / #80</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="SleeperCab" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P276 / I.1.1.13 / #84</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="ADASType"/> + <xs:element name="TorqueLimits" type="TorqueLimitsType" minOccurs="0"/> + <xs:element name="Components"> + <xs:complexType> + <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="AuxiliariesType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <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:choice> + <xs:element name="InputDataSignature" type="vdecdef:SignatureType"> + <xs:annotation> + <xs:documentation>I.3.1.3</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="AccelerationUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="m/s²"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="AirdragCertificationOptionType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="Measured"/> + <xs:enumeration value="Standard values"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="CO2UnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="DistanceUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="FuelConsumptionUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="g/km"/> + <xs:enumeration value="g/t-km"/> + <xs:enumeration value="g/p-km"/> + <xs:enumeration value="g/m³-km"/> + <xs:enumeration value="l/100km"/> + <xs:enumeration value="l/t-km"/> + <xs:enumeration value="l/p-km"/> + <xs:enumeration value="l/m³-km"/> + <xs:enumeration value="MJ/km"/> + <xs:enumeration value="MJ/t-km"/> + <xs:enumeration value="MJ/m³-km"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MassUnitType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="kg"/> + <xs:enumeration value="t"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="MissionTypeType"> + <xs:restriction base="xs:token"> + <xs:enumeration value="Long Haul EMS"/> + <xs:enumeration value="Long Haul"/> + <xs:enumeration value="Regional Delivery EMS"/> + <xs:enumeration value="Regional Delivery"/> + <xs:enumeration value="Urban Delivery"/> + <xs:enumeration value="Municipal Utility"/> + <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="AngularVelocityUnitType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="rpm"/> + </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:restriction base="xs:string"> + <xs:enumeration value="ltr"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="VectoOutputManufacturerType"> + <xs:sequence> + <xs:element name="Data"> + <xs:complexType> + <xs:complexContent> + <xs:extension base="VectoOutputDataType"/> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="Signature" type="vdecdef:SignatureType"> + <xs:annotation> + <xs:documentation>I.3.1.4 / #73</xs:documentation> + </xs:annotation> + </xs:element> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="PercentType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="%"/> + </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 / #97</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithoutEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P272 / I.1.12.2 / #98</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="EcoRollWithEngineStop" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P273 / I.1.12.3 / #99</xs:documentation> + </xs:annotation> + </xs:element> + <xs:element name="PredictiveCruiseControl" type="xs:boolean"> + <xs:annotation> + <xs:documentation>P274 / I.1.12.4 / #100</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:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd index b8765ba6f1241780a6559be5b2f98ad71280fd99..71bb92380a23a695f871c600b39e770d3fa54da0 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.xsd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationOutput" xmlns:ns2="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" xmlns:ns3="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" xmlns:ns4="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd"> <!-- This is a convienience file that imports the schema for all supported versions of manufacturer records file and all supported declaration definitions @@ -9,4 +9,5 @@ <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.5" schemaLocation="VectoOutputManufacturer.0.5.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.6" schemaLocation="VectoOutputManufacturer.0.6.xsd"/> <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" schemaLocation="VectoOutputManufacturer.0.7.xsd"/> + <xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7.1" schemaLocation="VectoOutputManufacturer.0.7.1.xsd"/> </xs:schema> diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index 855d278785ab6b19cdabfb845d794cb870f56ed1..afd6d1c0b641a6f9e9c7dc9d6e1323521a2d962d 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -685,6 +685,15 @@ <EmbeddedResource Include="Resources\XSD\VectoMonitoring.xsd"> <SubType>Designer</SubType> </EmbeddedResource> + <EmbeddedResource Include="Resources\XSD\VectoMonitoring.0.7.1.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Resources\XSD\VectoOutputCustomer.0.7.1.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> + <EmbeddedResource Include="Resources\XSD\VectoOutputManufacturer.0.7.1.xsd"> + <SubType>Designer</SubType> + </EmbeddedResource> <None Include="Utils\VectoVersionCore.tt"> <Generator>TextTemplatingFileGenerator</Generator> <LastGenOutput>VectoVersionCore.cs</LastGenOutput> diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp index 6cf9f32946ef3e0a66c2415dad7c1aebdc9fd9cd..cc5a4c3913f9006c5a290a2d94d39c2602fbfb80 100644 --- a/VectoCore/VectoXML.spp +++ b/VectoCore/VectoXML.spp @@ -86,13 +86,19 @@ <File FilePath="VectoCore\Resources\XSD\VectoEngineeringJob.xsd" HomeFolder="Yes"/> </Folder> <Folder FolderName="Reports"> + <File FilePath="VectoCore\Resources\XSD\VectoMonitoring.0.7.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoMonitoring.0.7.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoMonitoring.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.4.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.5.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.7.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.5.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.6.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.1.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.xsd" HomeFolder="Yes"/> + <File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.xsd" HomeFolder="Yes"/> <File FilePath="VectoCore\Resources\XSD\VTPReport.0.1.xsd" HomeFolder="Yes"/> </Folder> </Folder>