From 0eb5efb21edffce3c0c126c66aed647c519639de Mon Sep 17 00:00:00 2001 From: Harald Martini <harald.martini@student.tugraz.at> Date: Tue, 17 May 2022 08:40:01 +0200 Subject: [PATCH] renamed MockupResult files --- ....xml => CIF_MockupResults_OVC-HEV_Bus.xml} | 0 ...ml => CIF_MockupResults_OVC-HEV_Lorry.xml} | 3 +- ... => CIF_MockupResults_non-OVC-HEV_Bus.xml} | 0 ...> CIF_MockupResults_non-OVC-HEV_Lorry.xml} | 0 ....xml => MRF_MockupResults_OVC-HEV_Bus.xml} | 0 ...ml => MRF_MockupResults_OVC-HEV_Lorry.xml} | 0 ... => MRF_MockupResults_non-OVC-HEV_Bus.xml} | 0 ...> MRF_MockupResults_non-OVC-HEV_Lorry.xml} | 0 .../VectoCore/Resources/MockupResults.xml | 19 ---- .../VectoCore/Utils/MockupResultReader.cs | 105 ++++++++++++------ VectoCore/VectoCore/VectoCore.csproj | 7 +- 11 files changed, 73 insertions(+), 61 deletions(-) rename VectoCore/VectoCore/Resources/Declaration/Report/{CIF_MockupResults_OCV-HEV_Bus.xml => CIF_MockupResults_OVC-HEV_Bus.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{CIF_MockupResults_OCV-HEV_Lorry.xml => CIF_MockupResults_OVC-HEV_Lorry.xml} (98%) rename VectoCore/VectoCore/Resources/Declaration/Report/{CIF_MockupResults_non-OCV-HEV_Bus.xml => CIF_MockupResults_non-OVC-HEV_Bus.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{CIF_MockupResults_non-OCV-HEV_Lorry.xml => CIF_MockupResults_non-OVC-HEV_Lorry.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{MRF_MockupResults_OCV-HEV_Bus.xml => MRF_MockupResults_OVC-HEV_Bus.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{MRF_MockupResults_OCV-HEV_Lorry.xml => MRF_MockupResults_OVC-HEV_Lorry.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{MRF_MockupResults_non-OCV-HEV_Bus.xml => MRF_MockupResults_non-OVC-HEV_Bus.xml} (100%) rename VectoCore/VectoCore/Resources/Declaration/Report/{MRF_MockupResults_non-OCV-HEV_Lorry.xml => MRF_MockupResults_non-OVC-HEV_Lorry.xml} (100%) delete mode 100644 VectoCore/VectoCore/Resources/MockupResults.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OCV-HEV_Bus.xml b/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OVC-HEV_Bus.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OCV-HEV_Bus.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OVC-HEV_Bus.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OCV-HEV_Lorry.xml b/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OVC-HEV_Lorry.xml similarity index 98% rename from VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OCV-HEV_Lorry.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OVC-HEV_Lorry.xml index 24e78e5874..e2d877de79 100644 --- a/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OCV-HEV_Lorry.xml +++ b/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_OVC-HEV_Lorry.xml @@ -85,7 +85,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9 V:\VectoCore\Vec </Result> <!-- END OCV HEV (and OCV FCV in future) Lorry --> <Summary xsi:type="ResultSummaryOCVHEVType"> - <Fuel type="Diesel CI"><!-- repeat for every fuel used --> + <!-- repeat for every fuel used --> + <Fuel type="Diesel CI"> <FuelConsumption unit="g/km">6.1</FuelConsumption> <FuelConsumption unit="g/t-km">6.20</FuelConsumption> <FuelConsumption unit="g/m³-km">6.220</FuelConsumption> diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OCV-HEV_Bus.xml b/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OVC-HEV_Bus.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OCV-HEV_Bus.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OVC-HEV_Bus.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OCV-HEV_Lorry.xml b/VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OVC-HEV_Lorry.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OCV-HEV_Lorry.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/CIF_MockupResults_non-OVC-HEV_Lorry.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OCV-HEV_Bus.xml b/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OVC-HEV_Bus.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OCV-HEV_Bus.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OVC-HEV_Bus.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OCV-HEV_Lorry.xml b/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OVC-HEV_Lorry.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OCV-HEV_Lorry.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_OVC-HEV_Lorry.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OCV-HEV_Bus.xml b/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OVC-HEV_Bus.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OCV-HEV_Bus.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OVC-HEV_Bus.xml diff --git a/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OCV-HEV_Lorry.xml b/VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OVC-HEV_Lorry.xml similarity index 100% rename from VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OCV-HEV_Lorry.xml rename to VectoCore/VectoCore/Resources/Declaration/Report/MRF_MockupResults_non-OVC-HEV_Lorry.xml diff --git a/VectoCore/VectoCore/Resources/MockupResults.xml b/VectoCore/VectoCore/Resources/MockupResults.xml deleted file mode 100644 index 9a0e45b0d9..0000000000 --- a/VectoCore/VectoCore/Resources/MockupResults.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> - -<MockupResults> - <ConventionalLorryManufacturerOutputDataType> - <Mission>Long Haul</Mission> - <Load></Load> - <TotalVehicleMassInSimulation></TotalVehicleMassInSimulation> - <Simulation> - <AverageSpeed></AverageSpeed> - </Simulation> - <FuelAndEnergyConsumption> - - </FuelAndEnergyConsumption> - </ConventionalLorryManufacturerOutputDataType> - - <ConventionalLorryOutputType> - - </ConventionalLorryOutputType> -</MockupResults> diff --git a/VectoCore/VectoCore/Utils/MockupResultReader.cs b/VectoCore/VectoCore/Utils/MockupResultReader.cs index 35d40f0aad..395a7d91b3 100644 --- a/VectoCore/VectoCore/Utils/MockupResultReader.cs +++ b/VectoCore/VectoCore/Utils/MockupResultReader.cs @@ -1,19 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml; using System.Xml.Linq; using System.Xml.XPath; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; -using TUGraz.VectoCore.InputData.Impl; using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData.XML; -using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport; -using RuntimeArgumentHandle = System.RuntimeArgumentHandle; namespace TUGraz.VectoCore.Utils { @@ -41,14 +36,31 @@ namespace TUGraz.VectoCore.Utils XMLNames.CIF_OutputDataType_ConventionalLorryOutputType, }; - private static HashSet<string> hev = new HashSet<string>() { }; + private static HashSet<string> hev = new HashSet<string>() { + //MRF + XMLNames.MRF_OutputDataType_HEV_S2_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_S3_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_S4_LorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_Px_IHPCLorryManufacturerOutputDataType, + XMLNames.MRF_OutputDataType_HEV_IEPC_S_LorryManufacturerOutputDataType, + //CIF + XMLNames.CIF_OutputDataType_HEV_S2_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_S3_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_S4_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_IEPC_S_LorryOutputType, + XMLNames.CIF_OutputDataType_HEV_Px_LorryOutputType, + }; private static HashSet<string> pev = new HashSet<string>() { }; - public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type) + public static string GetResourceName(string xmlName, XMLDeclarationReport.ResultEntry result, ResultType type, bool ovc) { - var arch = GetArch(xmlName, false); - var reportType = type == ResultType.MRF ? "MRF" : "CIF"; - var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry"; - return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml"; + //if (result.Status == VectoRun.Status.Success) { + var arch = GetArch(xmlName, ovc); + var reportType = type == ResultType.MRF ? "MRF" : "CIF"; + var vehicleType = result.VehicleClass.IsBus() ? "Bus" : "Lorry"; + return $"{mockupResourcePrefix}.{reportType}_MockupResults_{arch}_{vehicleType}.xml"; + //} + + throw new NotImplementedException("Error result not implemented\n"); } private static string GetArch(string xmlName, bool ocv) @@ -58,12 +70,7 @@ namespace TUGraz.VectoCore.Utils } if (hev.Contains(xmlName)) { - if (ocv) { - return "OCV-HEV"; - } else { - return "non-OCV-HEV"; - } - + return ocv ? "OVC-HEV" : "non-OVC-HEV"; } if (pev.Contains(xmlName)) { @@ -76,9 +83,9 @@ namespace TUGraz.VectoCore.Utils } - public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName) + public static XElement GetMRFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, bool ovc) { - var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF)); + var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.MRF, ovc)); ReplaceMission(result, resultElement); SetFuels(result, resultElement); @@ -87,9 +94,11 @@ namespace TUGraz.VectoCore.Utils } - public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName) + + public static XElement GetCIFMockupResult(string xmlName, XMLDeclarationReport.ResultEntry result, XName resultElementName, bool ovc) { - var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF)); + var resultElement = GetResultElement(resultElementName, MockupResultHelper.GetResourceName(xmlName, result, ResultType.CIF, ovc)); + resultElement.DescendantNodes().OfType<XComment>().Remove(); ReplaceMission(result, resultElement); SetFuels(result, resultElement); @@ -99,7 +108,8 @@ namespace TUGraz.VectoCore.Utils private static XElement GetResultElement(XName resultElementName, string resourceName) { var xDoc = XDocument.Load(RessourceHelper.ReadStream(resourceName)); - var results = xDoc.XPathSelectElements($"//*[name()='Result']"); + + var results = xDoc.XPathSelectElements($"//*[name()='{resultElementName.LocalName}']"); return results.First(); } @@ -107,24 +117,47 @@ namespace TUGraz.VectoCore.Utils private static void ReplaceMission(XMLDeclarationReport.ResultEntry result, XElement resultElement) { - resultElement.Elements().Single(x => x.Name.LocalName == XMLNames.Report_Result_Mission).Value = - result.Mission.ToXMLFormat(); + var mission = resultElement.Elements() + .FirstOrDefault(x => x.Name.LocalName == XMLNames.Report_Result_Mission); + if (mission != null) { + mission.Value = result.Mission.ToXMLFormat(); + } + } private static void SetFuels(XMLDeclarationReport.ResultEntry result, XElement resultElement) { - var fuelElement = resultElement.XPathSelectElements("//*[name()='Fuel']").First(); - var insertAfter = fuelElement.PreviousNode; //FuelElements added after this element - fuelElement.Remove(); - - foreach (var fuelProperties in result.FuelData) { - - var fuelElementToAdd = new XElement(fuelElement); //deep copy of fuel element; - fuelElementToAdd.SetAttributeValue(XMLNames.Report_Results_Fuel_Type_Attr, fuelProperties.FuelType.ToXMLFormat()); - ClearFuelConsumptionEntries(fuelProperties.FuelType, fuelElementToAdd, result.VehicleClass); + //var tmpResultElement = new XElement(resultElement); + var fuelElements = resultElement.XPathSelectElements("//*[name()='Fuel']").ToList(); + foreach (var fuelElement in fuelElements) { + XElement lastAdded = null; + foreach (var fuelProperties in result.FuelData) + { + Action<XElement> insertAction = (element) => { + //FuelElements added after this element + if (lastAdded != null) { + fuelElement.AddAfterSelf(element); + + } else if (fuelElement.PreviousNode != null) { + fuelElement.AddAfterSelf(element); + + } else { + fuelElement.Parent.AddFirst(element); + } + lastAdded = element; + fuelElement.Remove(); + }; + + var fuelElementToAdd = new XElement(fuelElement); //deep copy of fuel element; + fuelElementToAdd.SetAttributeValue(XMLNames.Report_Results_Fuel_Type_Attr, fuelProperties.FuelType.ToXMLFormat()); + ClearFuelConsumptionEntries(fuelProperties.FuelType, fuelElementToAdd, result.VehicleClass); + + + + insertAction(fuelElementToAdd); - insertAfter.AddAfterSelf(fuelElementToAdd); - insertAfter = fuelElementToAdd; + + } } } diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index 273c5ea14b..325434c6b8 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -11,7 +11,8 @@ <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_1-Stage_650ccm.acmp" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_2-Cylinder_2-Stage_398ccm.acmp" /> <None Remove="Resources\Declaration\VAUXBus\DEFAULT_3-Cylinder_2-Stage_598ccm.acmp" /> - <None Remove="Resources\MockupResults.xml" /> + <None Remove="Resources\MockupCIFResults.xml" /> + <None Remove="Resources\MockupMRFResults.xml" /> <None Remove="Resources\XSD\VectoDeclarationDefinitions.2.2.1.xsd" /> <None Remove="Resources\XSD\VectoOutputPrimaryBus.xsd" /> </ItemGroup> @@ -73,10 +74,6 @@ </EmbeddedResource> </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="Resources\MockupResults.xml" /> - </ItemGroup> - <ItemGroup> <Compile Update="JSONKeys.Designer.cs"> <DesignTime>True</DesignTime> -- GitLab