From 15b7c9bb990392e2d48da7dee785d8261c1e26b5 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Thu, 16 Apr 2020 15:39:37 +0200 Subject: [PATCH] work on manufacturer report completed bus --- .../IPneumaticUserInputsConfig.cs | 5 + .../VectoCommon/InputData/DigestData.cs | 12 + .../InputData/IInputDataProvider.cs | 8 +- .../VectoCommon/Models/AxleConfiguration.cs | 5 + .../VectoCommon/Models/RegistrationClass.cs | 8 +- .../XMLDeclarationInputDataProvider.cs | 17 +- ...larationDataAdapterCompletedBusSpecific.cs | 8 +- .../SimulationComponent/Data/VehicleData.cs | 5 +- .../OutputData/XML/XMLCustomerReport.cs | 11 +- .../XMLDeclarationReportCompletedVehicle.cs | 2 +- .../XML/XMLManufacturerReportCompletedBus.cs | 305 ++++++++++-------- .../OutputData/XML/XMLPrimaryVehicleReport.cs | 6 +- .../VectoDeclarationDefinitions.2.6_Buses.xsd | 32 +- .../XSD/VectoOutputManufacturer.0.8.xsd | 101 ++++++ .../Resources/XSD/VectoOutputPrimaryBus.xsd | 3 +- VectoCore/VectoCore/Utils/VectoVersionCore.cs | 2 +- VectoCore/VectoCore/Utils/XMLHelper.cs | 9 + ...mary_heavyBus group42_SmartPS.RSLT_PIF.xml | 34 +- .../XMLPrimaryVehicleReportBusReaderTest.cs | 4 +- 19 files changed, 401 insertions(+), 176 deletions(-) diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs index 66508b4f12..802d2722a1 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs @@ -64,5 +64,10 @@ namespace TUGraz.VectoCommon.BusAuxiliaries return ConsumerTechnology.Unknown.ToString(); } } + + public static string ToXMLFormat(this ConsumerTechnology technology) + { + return technology.GetLabel().ToLowerInvariant(); + } } } diff --git a/VectoCommon/VectoCommon/InputData/DigestData.cs b/VectoCommon/VectoCommon/InputData/DigestData.cs index 4de3812589..d7892f302d 100644 --- a/VectoCommon/VectoCommon/InputData/DigestData.cs +++ b/VectoCommon/VectoCommon/InputData/DigestData.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Xml; using System.Xml.Linq; using System.Xml.XPath; @@ -76,5 +77,16 @@ namespace TUGraz.VectoCommon.InputData { public string[] CanonicalizationMethods { get; } public string DigestMethod { get; } + public XElement ToXML(XNamespace di) + { + return new XElement(di + "Reference", + new XAttribute("URI", Reference), + new XElement(di + "Transforms", + CanonicalizationMethods.Select(x => new XElement(di + "Transform", new XAttribute("Algorithm", x))) + ), + new XElement(di + "DigestMethod", new XAttribute("Algorithm", DigestMethod)), + new XElement(di + "DigestValue", DigestValue) + ); + } } } \ No newline at end of file diff --git a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs index 7533af593c..93ecf752d9 100644 --- a/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs +++ b/VectoCommon/VectoCommon/InputData/IInputDataProvider.cs @@ -62,15 +62,19 @@ namespace TUGraz.VectoCommon.InputData { IVehicleDeclarationInputData Vehicle { get; } - DigestData ResultDataHash { get; } + DigestData ManufacturerRecordHash { get; } + + DigestData PrimaryVehicleInputDataHash { get; } IResultsInputData ResultsInputData { get; } IApplicationInformation ApplicationInformation { get; } - DigestData ManufacturerHash { get; } + //DigestData ManufacturerHash { get; } IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload); + + XElement XMLHash { get; } } public interface ISingleBusInputDataProvider : IDeclarationInputDataProvider diff --git a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs index 32a2f4c6a2..4de78fb9e5 100644 --- a/VectoCommon/VectoCommon/Models/AxleConfiguration.cs +++ b/VectoCommon/VectoCommon/Models/AxleConfiguration.cs @@ -84,6 +84,11 @@ namespace TUGraz.VectoCommon.Models return self.ToString().Replace(Prefix, ""); } + public static string ToXMLFormat(this AxleConfiguration self) + { + return self.GetName(); + } + public static AxleConfiguration Parse(string typeString) { return (Prefix + typeString).ParseEnum<AxleConfiguration>(); diff --git a/VectoCommon/VectoCommon/Models/RegistrationClass.cs b/VectoCommon/VectoCommon/Models/RegistrationClass.cs index 7953b0ad60..518ecd1294 100644 --- a/VectoCommon/VectoCommon/Models/RegistrationClass.cs +++ b/VectoCommon/VectoCommon/Models/RegistrationClass.cs @@ -8,6 +8,7 @@ namespace TUGraz.VectoCommon.Models { public enum RegistrationClass { + unknown, I, I_II, II, @@ -15,7 +16,7 @@ namespace TUGraz.VectoCommon.Models III, A, B, - unknown + } public static class RegistrationClassHelper @@ -32,6 +33,11 @@ namespace TUGraz.VectoCommon.Models } } + public static string ToXMLFormat(this RegistrationClass self) + { + return self.GetLabel(); + } + public static RegistrationClass[] Parse(string registrationClasses) { var classes = registrationClasses.Split('/'); diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs index b9282412d5..8c91f030a6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationInputDataProvider.cs @@ -135,6 +135,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration { Document = xmlDoc; SourceType = DataSourceType.XMLFile; + + var h = VectoHash.Load(xmlDoc); + XMLHash = h.ComputeXmlHash(); } @@ -145,19 +148,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration get { return _vehicle ?? (_vehicle = Reader.JobData.Vehicle); } } - public DigestData ResultDataHash + public DigestData PrimaryVehicleInputDataHash { - get { return Reader.GetDigestData(GetNode(XMLNames.Tag_ResultDataSignatureNode)); } + get { return Reader.GetDigestData(GetNode("InputDataSignature")); } } - public IApplicationInformation ApplicationInformation + public DigestData ManufacturerRecordHash { - get { return _applicationInformation ?? (_applicationInformation = Reader.ApplicationInformation); } + get { return Reader.GetDigestData(GetNode("ManufacturerRecordSignature")); } } - public DigestData ManufacturerHash + public IApplicationInformation ApplicationInformation { - get { return Reader.GetDigestData(Document.LastChild.LastChild); } + get { return _applicationInformation ?? (_applicationInformation = Reader.ApplicationInformation); } } public IResult GetResult(VehicleClass vehicleClass, MissionType mission, string fuelMode, Kilogram payload) @@ -168,6 +171,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration x.SimulationParameter.FuelMode.Equals(fuelMode, StringComparison.InvariantCultureIgnoreCase)); } + public XElement XMLHash { get; } + public IResultsInputData ResultsInputData { get { return _resultsInputData ?? (_resultsInputData = Reader.ResultsInputData); } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index 8cb3dc6d19..aba5ffaa7c 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter completedVehicle.NumberOfPassengersLowerDeck + completedVehicle.NumberOfPassengersUpperDeck, loading.Key); var vehicleData = base.CreateVehicleData(primaryVehicle, mission, loading); - + vehicleData.InputData = completedVehicle; vehicleData.VIN = completedVehicle.VIN; vehicleData.LegislativeClass = completedVehicle.LegislativeClass; vehicleData.VehicleCategory = VehicleCategory.HeavyBusCompletedVehicle; @@ -43,7 +43,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter vehicleData.PassengerCount = passengers; vehicleData.GrossVehicleMass = completedVehicle.GrossVehicleMassRating; vehicleData.DigestValueInput = completedVehicle.DigestValue?.DigestValue ?? ""; - + + vehicleData.RegisteredClass = completedVehicle.RegisteredClass; + + vehicleData.VehicleCode = completedVehicle.VehicleCode; + return vehicleData; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs index dc02311249..70b76855ed 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs @@ -251,8 +251,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [JsonIgnore] public IVehicleDeclarationInputData InputData { get; internal set; } + public RegistrationClass RegisteredClass { get; internal set; } + public VehicleCode VehicleCode { get; internal set; } -// #region "Bus Parameters" + + // #region "Bus Parameters" // public double PassengerCount { get; internal set; } // public FloorType FloorType { get; internal set; } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs index d6905a4914..7b1b08743a 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs @@ -113,7 +113,7 @@ namespace TUGraz.VectoCore.OutputData.XML ); } InputDataIntegrity = new XElement(tns + XMLNames.Report_InputDataSignature, - modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash)); + modelData.InputDataHash == null ? XMLHelper.CreateDummySig(di) : new XElement(modelData.InputDataHash)); } private object[] ExemptedData(VectoRunData modelData) @@ -162,14 +162,7 @@ namespace TUGraz.VectoCore.OutputData.XML } - private XElement CreateDummySig() - { - return new XElement(di + XMLNames.DI_Signature_Reference, - new XElement(di + XMLNames.DI_Signature_Reference_DigestMethod, - new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "null")), - new XElement(di + XMLNames.DI_Signature_Reference_DigestValue, "NOT AVAILABLE") - ); - } + public virtual void WriteResult(XMLDeclarationReport.ResultEntry resultEntry) { diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index 5c906d13f3..8dfefbbab4 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -18,7 +18,7 @@ namespace TUGraz.VectoCore.OutputData.XML { protected override void InstantiateReports(VectoRunData modelData) { ManufacturerRpt = new XMLManufacturerReportCompletedBus() { - PrimaryVehicle = PrimaryResults.Vehicle + PrimaryVehicleRecordFile = PrimaryResults }; CustomerRpt = new XMLCustomerReportCompletedBus(); } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs index 741060ee39..e690857fe3 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReportCompletedBus.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Xml.Linq; +using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; @@ -17,39 +18,68 @@ namespace TUGraz.VectoCore.OutputData.XML { public class XMLManufacturerReportCompletedBus : AbstractXMLManufacturerReport { - public IVehicleDeclarationInputData PrimaryVehicle { get; set; } + public IPrimaryVehicleInformationInputDataProvider PrimaryVehicleRecordFile { get; set; } + public IVehicleDeclarationInputData PrimaryVehicle { get { return PrimaryVehicleRecordFile.Vehicle; } } + + #region Overrides of AbstractXMLManufacturerReport public override void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) { VehiclePart.Add( - new XAttribute(xsi + "type", "VehiclePrimaryBusType"), - new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), - new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), - new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), - new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), - new XElement( - tns + XMLNames.Vehicle_GrossVehicleMass, - XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleMass, XMLNames.Unit_t, 1)), + new XAttribute(xsi + "type", "VehicleCompletedBusType"), + GetPrimaryVehicleInformation(), new XElement( - tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbMass, XMLNames.Unit_kg)), - new XElement(tns + XMLNames.Vehicle_ZeroEmissionVehicle, modelData.VehicleData.ZeroEmissionVehicle), - new XElement(tns + XMLNames.Vehicle_HybridElectricHDV, modelData.VehicleData.HybridElectricHDV), - new XElement(tns + XMLNames.Vehicle_DualFuelVehicle, modelData.VehicleData.DualFuelVehicle), - new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), - new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), - - GetADAS(modelData.VehicleData.ADAS), - GetTorqueLimits(modelData.EngineData), - VehicleComponents(modelData, fuelModes) - + tns + "CompletedVehicle", + new XElement(tns + XMLNames.Component_Model, modelData.VehicleData.ModelName), + new XElement(tns + XMLNames.Component_Manufacturer, modelData.VehicleData.Manufacturer), + new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), + new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), + new XElement(tns + XMLNames.Vehicle_VehicleCategory, modelData.VehicleData.VehicleCategory.ToXMLFormat()), + new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), + new XElement(tns + XMLNames.Vehicle_RegisteredClass, modelData.VehicleData.RegisteredClass.ToXMLFormat()), + new XElement(tns + XMLNames.Vehicle_VehicleCode, modelData.VehicleData.VehicleCode.ToXMLFormat()), + new XElement(tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbMass, XMLNames.Unit_kg)), + new XElement(tns + XMLNames.TPMLM, + XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleMass, XMLNames.Unit_t, 1)), + new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.ZeroEmissionVehicle), + new XElement(tns + XMLNames.Vehicle_ZeroEmissionVehicle, modelData.VehicleData.ZeroEmissionVehicle), + new XElement(tns + XMLNames.Vehicle_HybridElectricHDV, modelData.VehicleData.HybridElectricHDV), + new XElement(tns + XMLNames.Vehicle_DualFuelVehicle, modelData.VehicleData.DualFuelVehicle), + new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.DualFuelVehicle), + + new XElement(tns + "RegisteredPassengers", + new XElement(tns + XMLNames.Bus_LowerDeck, modelData.VehicleData.InputData.NumberOfPassengersLowerDeck), + new XElement(tns + XMLNames.Bus_UpperDeck, modelData.VehicleData.InputData.NumberOfPassengersUpperDeck) + ), + new XElement(tns +XMLNames.Bus_LowEntry, modelData.VehicleData.InputData.FloorType == FloorType.LowFloor), + new XElement(tns + XMLNames.Bus_HeighIntegratedBody, modelData.VehicleData.InputData.Height.ToXMLFormat(3)), + new XElement(tns + XMLNames.Bus_VehicleLength, modelData.VehicleData.InputData.Length.ToXMLFormat(3)), + new XElement(tns + XMLNames.Bus_VehicleWidth, modelData.VehicleData.InputData.Width.ToXMLFormat(3)), + new XElement(tns + XMLNames.BusAux_PneumaticSystem_DoorDriveTechnology, modelData.VehicleData.InputData.DoorDriveTechnology.ToXMLFormat()), + + VehicleComponents(modelData, fuelModes) + ) ); InputDataIntegrity = GetInputDataSignature(modelData); } + private XElement GetPrimaryVehicleInformation() + { + return new XElement( + tns + "PrimaryVehicle", + new XElement(tns + XMLNames.Component_Manufacturer, PrimaryVehicle.Manufacturer), + new XElement(tns + XMLNames.Component_ManufacturerAddress, PrimaryVehicle.ManufacturerAddress), + new XElement(tns + XMLNames.Vehicle_AxleConfiguration, PrimaryVehicle.AxleConfiguration.ToXMLFormat()), + new XElement(tns + XMLNames.Report_InputDataSignature, PrimaryVehicleRecordFile.PrimaryVehicleInputDataHash.ToXML(di)), + new XElement(tns + "ManufacturerRecordSignature", PrimaryVehicleRecordFile.ManufacturerRecordHash.ToXML(di)), + new XElement(tns + "VehicleInformationSignature", PrimaryVehicleRecordFile.XMLHash) + ); + } + public virtual void WriteResult(XMLDeclarationReport.ResultEntry genericResult, XMLDeclarationReport.ResultEntry specificResult, IResult primaryResult) { @@ -269,106 +299,100 @@ namespace TUGraz.VectoCore.OutputData.XML { { return new XElement( tns + XMLNames.Vehicle_Components, - new XAttribute(xsi + "type", "ComponentsPrimaryBusType"), - GetEngineDescription(modelData.EngineData, fuelModes), - GetGearboxDescription(modelData.GearboxData), - GetTorqueConverterDescription(modelData.GearboxData.TorqueConverterData), - GetRetarderDescription(modelData.Retarder), - GetAngledriveDescription(modelData.AngledriveData), - GetAxlegearDescription(modelData.AxleGearData), - GetAxleWheelsDescription(modelData.VehicleData), + new XAttribute(xsi + "type", "ComponentsCompletedBusType"), + GetAirDragDescription(modelData.AirdragData), GetAuxiliariesDescription(modelData) ); } - protected override XElement GetEngineDescription(CombustionEngineData engineData, List<List<FuelData.Entry>> fuelModes) - { - return new XElement( - tns + XMLNames.Component_Engine, - GetCommonDescription(PrimaryVehicle.Components.EngineInputData), - new XElement( - tns + XMLNames.Engine_RatedPower, XMLHelper.ValueAsUnit(engineData.RatedPowerDeclared, XMLNames.Unit_kW)), - new XElement(tns + XMLNames.Engine_IdlingSpeed, XMLHelper.ValueAsUnit(engineData.IdleSpeed, XMLNames.Unit_RPM)), - new XElement( - tns + XMLNames.Engine_RatedSpeed, XMLHelper.ValueAsUnit(engineData.RatedSpeedDeclared, XMLNames.Unit_RPM)), - new XElement( - tns + XMLNames.Engine_Displacement, XMLHelper.ValueAsUnit(engineData.Displacement, XMLNames.Unit_ltr, 1)), - new XElement(tns + XMLNames.Engine_WHRType, engineData.WHRType.ToXMLFormat()), - PrimaryVehicle.Components.EngineInputData.EngineModes.Select( - x => new XElement( - tns + XMLNames.Report_Engine_FuelMode, - x.Fuels.Select(f => new XElement(tns + XMLNames.Engine_FuelType, f.FuelType.ToXMLFormat())))) - ); - } - - protected override XElement GetGearboxDescription(GearboxData gearboxData) - { - return new XElement( - tns + XMLNames.Component_Gearbox, - GetCommonDescription(PrimaryVehicle.Components.GearboxInputData), - new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()), - new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, gearboxData.Gears.Count), - new XElement( - tns + XMLNames.Report_Gearbox_TransmissionRatioFinalGear, - gearboxData.Gears[gearboxData.Gears.Keys.Max()].Ratio.ToXMLFormat(3)) - ); - } - - protected override XElement GetGearboxDescription(GearboxData gearboxData, AxleGearData axlegearData) - { - return new XElement( - tns + XMLNames.Component_Gearbox, - GetCommonDescription(PrimaryVehicle.Components.GearboxInputData), - 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 override XElement GetTorqueConverterDescription(TorqueConverterData torqueConverterData) - { - if (torqueConverterData == null) { - return null; - } - - return new XElement( - tns + XMLNames.Component_TorqueConverter, - GetCommonDescription(PrimaryVehicle.Components.TorqueConverterInputData)); - } - - protected override XElement GetRetarderDescription(RetarderData retarder) - { - return new XElement( - tns + XMLNames.Component_Retarder, - new XElement(tns + XMLNames.Vehicle_RetarderType, retarder.Type.ToXMLFormat()) - //retarder.Type.IsDedicatedComponent() ? GetCommonDescription(PrimaryVehicle.Components.RetarderInputData) : null - ); - } - - protected override XElement GetAngledriveDescription(AngledriveData angledriveData) - { - if (angledriveData == null) { - return null; - } - - return new XElement( - tns + XMLNames.Component_Angledrive, - GetCommonDescription(PrimaryVehicle.Components.AngledriveInputData), - new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3))); - } - - protected override XElement GetAxlegearDescription(AxleGearData axleGearData) - { - return new XElement( - tns + XMLNames.Component_Axlegear, - GetCommonDescription(PrimaryVehicle.Components.AxleGearInputData), - new XElement(tns + XMLNames.Axlegear_LineType, axleGearData.LineType.ToXMLFormat()), - new XElement(tns + XMLNames.Axlegear_Ratio, axleGearData.AxleGear.Ratio.ToXMLFormat(3))); - } + //protected override XElement GetEngineDescription(CombustionEngineData engineData, List<List<FuelData.Entry>> fuelModes) + //{ + // return new XElement( + // tns + XMLNames.Component_Engine, + // GetCommonDescription(PrimaryVehicle.Components.EngineInputData), + // new XElement( + // tns + XMLNames.Engine_RatedPower, XMLHelper.ValueAsUnit(engineData.RatedPowerDeclared, XMLNames.Unit_kW)), + // new XElement(tns + XMLNames.Engine_IdlingSpeed, XMLHelper.ValueAsUnit(engineData.IdleSpeed, XMLNames.Unit_RPM)), + // new XElement( + // tns + XMLNames.Engine_RatedSpeed, XMLHelper.ValueAsUnit(engineData.RatedSpeedDeclared, XMLNames.Unit_RPM)), + // new XElement( + // tns + XMLNames.Engine_Displacement, XMLHelper.ValueAsUnit(engineData.Displacement, XMLNames.Unit_ltr, 1)), + // new XElement(tns + XMLNames.Engine_WHRType, engineData.WHRType.ToXMLFormat()), + // PrimaryVehicle.Components.EngineInputData.EngineModes.Select( + // x => new XElement( + // tns + XMLNames.Report_Engine_FuelMode, + // x.Fuels.Select(f => new XElement(tns + XMLNames.Engine_FuelType, f.FuelType.ToXMLFormat())))) + // ); + //} + + //protected override XElement GetGearboxDescription(GearboxData gearboxData) + //{ + // return new XElement( + // tns + XMLNames.Component_Gearbox, + // GetCommonDescription(PrimaryVehicle.Components.GearboxInputData), + // new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()), + // new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, gearboxData.Gears.Count), + // new XElement( + // tns + XMLNames.Report_Gearbox_TransmissionRatioFinalGear, + // gearboxData.Gears[gearboxData.Gears.Keys.Max()].Ratio.ToXMLFormat(3)) + // ); + //} + + //protected override XElement GetGearboxDescription(GearboxData gearboxData, AxleGearData axlegearData) + //{ + // return new XElement( + // tns + XMLNames.Component_Gearbox, + // GetCommonDescription(PrimaryVehicle.Components.GearboxInputData), + // 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 override XElement GetTorqueConverterDescription(TorqueConverterData torqueConverterData) + //{ + // if (torqueConverterData == null) { + // return null; + // } + + // return new XElement( + // tns + XMLNames.Component_TorqueConverter, + // GetCommonDescription(PrimaryVehicle.Components.TorqueConverterInputData)); + //} + + //protected override XElement GetRetarderDescription(RetarderData retarder) + //{ + // return new XElement( + // tns + XMLNames.Component_Retarder, + // new XElement(tns + XMLNames.Vehicle_RetarderType, retarder.Type.ToXMLFormat()) + // //retarder.Type.IsDedicatedComponent() ? GetCommonDescription(PrimaryVehicle.Components.RetarderInputData) : null + // ); + //} + + //protected override XElement GetAngledriveDescription(AngledriveData angledriveData) + //{ + // if (angledriveData == null) { + // return null; + // } + + // return new XElement( + // tns + XMLNames.Component_Angledrive, + // GetCommonDescription(PrimaryVehicle.Components.AngledriveInputData), + // new XElement(tns + XMLNames.AngleDrive_Ratio, angledriveData.Angledrive.Ratio.ToXMLFormat(3))); + //} + + //protected override XElement GetAxlegearDescription(AxleGearData axleGearData) + //{ + // return new XElement( + // tns + XMLNames.Component_Axlegear, + // GetCommonDescription(PrimaryVehicle.Components.AxleGearInputData), + // new XElement(tns + XMLNames.Axlegear_LineType, axleGearData.LineType.ToXMLFormat()), + // new XElement(tns + XMLNames.Axlegear_Ratio, axleGearData.AxleGear.Ratio.ToXMLFormat(3))); + //} protected override XElement GetAirDragDescription(AirdragData airdragData) { @@ -390,27 +414,40 @@ namespace TUGraz.VectoCore.OutputData.XML { ); } - - protected virtual object[] GetCommonDescription(IEngineDeclarationInputData data) + protected override XElement GetAuxiliariesDescription(VectoRunData modelData) { - return new object[] { - new XElement(tns + XMLNames.Component_Model, data.Model), - new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber), - new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValue.DigestValue) - }; + var busAuxiliaries = modelData.BusAuxiliaries; + var busAuxXML = busAuxiliaries.InputData.XMLSource; + var ns = XNamespace.Get(busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Namespace); + const string auxPrefix = "aux"; + return new XElement( + tns + XMLNames.Component_Auxiliaries, + new XAttribute(XNamespace.Xmlns + auxPrefix, ns.NamespaceName), + new XAttribute(xsi + "type", string.Format("{0}:{1}", auxPrefix, busAuxXML.FirstChild.SchemaInfo.SchemaType.QualifiedName.Name)), + XElement.Parse(busAuxXML.InnerXml).Elements() + ); } - protected virtual object[] GetCommonDescription(IComponentInputData data) - { - return new object[] { - new XElement(tns + XMLNames.Component_Model, data.Model), - new XElement(tns + XMLNames.Report_Component_CertificationMethod, data.CertificationMethod.ToXMLFormat()), - data.CertificationMethod == CertificationMethod.StandardValues - ? null - : new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber), - new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValue.DigestValue) - }; - } + //protected virtual object[] GetCommonDescription(IEngineDeclarationInputData data) + //{ + // return new object[] { + // new XElement(tns + XMLNames.Component_Model, data.Model), + // new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber), + // new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValue.DigestValue) + // }; + //} + + //protected virtual object[] GetCommonDescription(IComponentInputData data) + //{ + // return new object[] { + // new XElement(tns + XMLNames.Component_Model, data.Model), + // new XElement(tns + XMLNames.Report_Component_CertificationMethod, data.CertificationMethod.ToXMLFormat()), + // data.CertificationMethod == CertificationMethod.StandardValues + // ? null + // : new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber), + // new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValue.DigestValue) + // }; + //} #endregion public override void WriteResult(XMLDeclarationReport.ResultEntry resultEntry) diff --git a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs index 4ee33626f1..08eb113541 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLPrimaryVehicleReport.cs @@ -72,7 +72,8 @@ namespace TUGraz.VectoCore.OutputData.XML RootNS + XMLNames.Report_DataWrap, new XAttribute(xsi + "type", "PrimaryVehicleHeavyBusDataType"), VehiclePart, - new XElement(tns + XMLNames.Report_ResultData_Signature, resultSignature), + InputDataIntegrity, + new XElement(tns + "ManufacturerRecordSignature", resultSignature), results, GetApplicationInfo()) ) @@ -127,6 +128,9 @@ namespace TUGraz.VectoCore.OutputData.XML GetTorqueLimits(modelData), VehicleComponents(modelData, fuelModes) ); + + InputDataIntegrity = new XElement(tns + XMLNames.Report_InputDataSignature, + modelData.InputDataHash == null ? XMLHelper.CreateDummySig(di) : new XElement(modelData.InputDataHash)); } private XElement GetADAS(VehicleData.ADASData adasData) diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd index 8901a27fc3..155b350e73 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.6_Buses.xsd @@ -140,10 +140,34 @@ </xs:complexType> </xs:element> <xs:element name="LowEntry" type="xs:boolean"/> - <xs:element name="HeightIntegratedBody" type="v1.0:Double3"/> - <xs:element name="VehicleLength" type="v1.0:Double3"/> - <xs:element name="VehicleWidth" type="v1.0:Double3"/> - <xs:element name="EntranceHeight" type="v1.0:Double3"/> + <xs:element name="HeightIntegratedBody"> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VehicleLength"> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VehicleWidth"> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="EntranceHeight"> + <xs:simpleType> + <xs:restriction base="v1.0:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> <xs:element name="DoorDriveTechnology" type="v2.6:DoorDriveTechnologyType"/> <xs:element name="Components" type="v2.6:AbstractCompletedVehicleComponentsDeclarationType"/> </xs:sequence> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd index a4fd13a5d9..b8cb60dccb 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.8.xsd @@ -1205,4 +1205,105 @@ <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> + <xs:complexType name="VehicleCompletedBusType"> + <xs:complexContent> + <xs:extension base="AbstractVehicleType"> + <xs:sequence> + <xs:element name="PrimaryVehicle" type="PrimaryVehicleType"/> + <xs:element name="CompletedVehicle"> + <xs:complexType> + <xs:sequence> + <xs:element name="Model" type="vdecdef:ModelType"/> + <xs:element name="Manufacturer" type="vdecdef:ManufacturerType"/> + <xs:element name="ManufacturerAddress" type="vdecdef:ManufacturerAddressType"/> + <xs:element name="VIN" type="vdecdef:VINType"/> + <xs:element name="VehicleCategory" type="vdecdef:LegislativeClassDeclarationType"/> + <xs:element name="VehicleGroup" type="xs:string"/> + <xs:element name="RegisteredClass" type="xs:string"/> + <xs:element name="VehicleCode" type="xs:string"/> + <xs:element name="CurbMassChassis" type="vdecdef:VehicleCurbMassChassisType"/> + <xs:element name="TechnicalPermissibleMaximumLadenMass" type="vdecdef:VehicleGrossVehicleMassType"/> + <xs:element name="VocationalVehcle" type="BooleanNotApplicableType"/> + <xs:element name="ZeroEmissionVehicle" type="xs:boolean"/> + <xs:element name="HybridElectricHDV" type="xs:boolean"/> + <xs:element name="DualFuelVehicle" type="xs:boolean"/> + <xs:element name="SleeperCab" type="BooleanNotApplicableType"/> + <xs:element name="RegisteredPassengers"> + <xs:complexType> + <xs:sequence> + <xs:element name="LowerDeck"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="UpperDeck"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="LowEntry" type="xs:boolean"/> + <xs:element name="HeightIntegratedBody"> + <xs:simpleType> + <xs:restriction base="vdecdef:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VehicleLength"> + <xs:simpleType> + <xs:restriction base="vdecdef:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="VehicleWidth"> + <xs:simpleType> + <xs:restriction base="vdecdef:Double3"> + <xs:minExclusive value="0.000"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="DoorDriveTechnology" type="xs:string"/> + <xs:element name="Components" type="AbstractComponentsType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="PrimaryVehicleType"> + <xs:sequence> + <xs:element name="Manufacturer" type="vdecdef:ManufacturerType"/> + <xs:element name="ManufacturerAddress" type="vdecdef:ManufacturerAddressType"/> + <xs:element name="AxleConfiguration" type="xs:string"/> + <xs:element name="InputDataSignature" type="vdecdef:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="vdecdef:SignatureType"/> + <xs:element name="VehicleInformationSignature" type="vdecdef:SignatureType"/> + </xs:sequence> + </xs:complexType> + <xs:simpleType name="BooleanNotApplicableType"> + <xs:restriction base="xs:string"> + <xs:enumeration value="true"/> + <xs:enumeration value="false"/> + <xs:enumeration value="not applicable"/> + </xs:restriction> + </xs:simpleType> + <xs:complexType name="ComponentsCompletedBusType"> + <xs:complexContent> + <xs:extension base="AbstractComponentsType"> + <xs:sequence> + <xs:element name="AirDrag" type="AirdragType"/> + <xs:element name="Auxiliaries" type="v2.6:AbstractCompletedVehicleAuxiliaryDataDeclarationType"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> </xs:schema> diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd index c37837a94c..0edba654ec 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputPrimaryBus.xsd @@ -253,7 +253,8 @@ <xs:extension base="out:AbstractPrimaryVehicleDataPIFType"> <xs:sequence> <xs:element name="Vehicle" type="AbstractVehiclePIFType"/> - <xs:element name="ResultDataSignature" type="v1.0:SignatureType"/> + <xs:element name="InputDataSignature" type="v1.0:SignatureType"/> + <xs:element name="ManufacturerRecordSignature" type="v1.0:SignatureType"/> <xs:element name="Results" type="ResultsPIFType"/> <xs:element name="ApplicationInformation" type="ApplicationInformationPIFType"/> </xs:sequence> diff --git a/VectoCore/VectoCore/Utils/VectoVersionCore.cs b/VectoCore/VectoCore/Utils/VectoVersionCore.cs index 3798ec4c6e..6514ff0728 100644 --- a/VectoCore/VectoCore/Utils/VectoVersionCore.cs +++ b/VectoCore/VectoCore/Utils/VectoVersionCore.cs @@ -47,7 +47,7 @@ namespace TUGraz.VectoCore.Utils public static string VersionNumber { get { - return "0.6.0.1884" + SUFFIX; + return "0.6.1.1932" + SUFFIX; } } diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs index 718437960c..d0605f5f8c 100644 --- a/VectoCore/VectoCore/Utils/XMLHelper.cs +++ b/VectoCore/VectoCore/Utils/XMLHelper.cs @@ -273,5 +273,14 @@ namespace TUGraz.VectoCore.Utils var namesp = node.SchemaInfo.SchemaType.QualifiedName.Namespace; return namesp.Split(':').Last(x => x.StartsWith(versionPrefix)).Replace(versionPrefix, string.Empty).ToDouble(); } + + public static XElement CreateDummySig(XNamespace di) + { + return new XElement(di + XMLNames.DI_Signature_Reference, + new XElement(di + XMLNames.DI_Signature_Reference_DigestMethod, + new XAttribute(XMLNames.DI_Signature_Algorithm_Attr, "null")), + new XElement(di + XMLNames.DI_Signature_Reference_DigestValue, "NOT AVAILABLE") + ); + } } } diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml index edb50f75f4..e8dea11f64 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/primary_heavyBus group42_SmartPS.RSLT_PIF.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <pif:VectoOutputPrimaryVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:pif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD//DEV/VectoOutputPrimaryVehicleInformation.xsd"> - <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-b1f9a6097ed74a6b82de"> + <pif:Data xsi:type="PrimaryVehicleHeavyBusDataType" id="PIF-1a5c4fd556f14ec8ac23"> <Vehicle xsi:type="VehiclePIFType"> <ManufacturerPrimaryVehicle>Generic Truck Manufacturer</ManufacturerPrimaryVehicle> <ManufacturerAddressPrimaryVehicle>Street, ZIP City</ManufacturerAddressPrimaryVehicle> @@ -127,8 +127,8 @@ </Transmission> <Axlegear> <Data xsi:type="AxlegearDataPIFType"> - <Manufacturer>Generic Gearbox Manufacturer Primary</Manufacturer> - <Model>Generic 40t Long Haul Truck AxleGear</Model> + <Manufacturer>Generic Gearbox Manufacturer</Manufacturer> + <Model>Generic 40t Long Haul Truck AxleGear Primary</Model> <CertificationMethod>Standard values</CertificationMethod> <Date>2017-01-11T11:00:00Z</Date> <AppVersion>3.0.1</AppVersion> @@ -254,16 +254,28 @@ </Auxiliaries> </Components> </Vehicle> - <ResultDataSignature> - <di:Reference URI="#RESULT-f61bd2ce3c3341eb8048"> + <InputDataSignature> + + <di:Reference URI="#VEH-PrimaryBus_SmartPS"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>KyEUoR+pb/fnqRuLFC53Ft+RhDf+ABAdd1xxsMwH7io=</di:DigestValue> + </di:Reference> + + </InputDataSignature> + <ManufacturerRecordSignature> + <di:Reference URI="#RESULT-bfe32d82bc964c108ed0"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>heugWRk0GnYtGPjosKwy3WhcNUMVeLC6nTE69GzCYnY=</di:DigestValue> + <di:DigestValue>1g9GT522b4FZfr8XwSCNBMfrdcP9F6MoZHxRWugnOzs=</di:DigestValue> </di:Reference> - </ResultDataSignature> + </ManufacturerRecordSignature> <Results> <Status>success</Status> <Result status="success"> @@ -548,18 +560,18 @@ </Result> </Results> <ApplicationInformation> - <SimulationToolVersion>0.6.0.1884-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2020-04-16T05:38:26.8930564Z</Date> + <SimulationToolVersion>0.6.1.1932-DEV !!NOT FOR CERTIFICATION!!</SimulationToolVersion> + <Date>2020-04-16T12:23:52.6883135Z</Date> </ApplicationInformation> </pif:Data> <pif:Signature> - <di:Reference URI="#PIF-b1f9a6097ed74a6b82de"> + <di:Reference URI="#PIF-1a5c4fd556f14ec8ac23"> <di:Transforms> <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </di:Transforms> <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> - <di:DigestValue>igtEc9rHHfZ+4xt2XsbxYnD7yW0qLkrVe/UJL/bMZ5U=</di:DigestValue> + <di:DigestValue>b3547elwo1lTvTbxKYq/b7VwOEygVUcPt9E/kpjkMcY=</di:DigestValue> </di:Reference> </pif:Signature> </pif:VectoOutputPrimaryVehicle> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs b/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs index 9ad11695f9..c3a2209bd0 100644 --- a/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLPrimaryVehicleReportBusReaderTest.cs @@ -102,13 +102,13 @@ namespace TUGraz.VectoCore.Tests.XML TestHVAC(components.BusAuxiliaries.HVACAux); - TestResultDataSignature(inputDataProvider.ResultDataHash); + TestResultDataSignature(inputDataProvider.ManufacturerRecordHash); TestResultData(inputDataProvider.ResultsInputData); TestApplicationInformation(inputDataProvider.ApplicationInformation); - TestSignature(inputDataProvider.ManufacturerHash); + //TestSignature(inputDataProvider.ManufacturerHash); } -- GitLab