From a834823bc5e5d09dc05e38e76e64e8bdb0c207ae Mon Sep 17 00:00:00 2001 From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at> Date: Fri, 24 Jun 2022 15:09:08 +0200 Subject: [PATCH] started with report for Mockup --- .../VectoCore/Ninject/VectoNinjectModule.cs | 3 + .../AbstractVIFReport.cs | 69 +++++++++++++ .../IVIFReportFactory.cs | 64 ++++++++++++ .../VIFReport/PrimaryVIFReport.cs | 40 ++++++++ .../VectoMockup/Ninject/VIFMockupModule.cs | 96 +++++++++++++++++- .../Reports/MockupReportFactory.cs | 2 + .../VectoMockup/Reports/MockupVIFReport.cs | 97 +++++++++++++++++++ 7 files changed, 369 insertions(+), 2 deletions(-) create mode 100644 VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs create mode 100644 VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs create mode 100644 VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs create mode 100644 VectoMockup/VectoMockup/Reports/MockupVIFReport.cs diff --git a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs index ed368bc1c4..3ea6c57d05 100644 --- a/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs +++ b/VectoCore/VectoCore/Ninject/VectoNinjectModule.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCore.OutputData.XML; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9; using TUGraz.VectoCore.OutputData.XML.ComponentWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; using TUGraz.VectoCore.OutputData.XML.Engineering; using TUGraz.VectoCore.OutputData.XML.GroupWriter; @@ -92,6 +93,8 @@ namespace TUGraz.VectoCore LoadModule<MRFNinjectModule>(); LoadModule<CIFNinjectModule>(); + LoadModule<VIFNinjectModule>(); + #if (MOCKUP) //TODO: add second constant for release diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs new file mode 100644 index 0000000000..b686d18b72 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/AbstractVIFReport.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public abstract class AbstractVIFReport : IXMLPrimaryVehicleReport + { + private XDocument _report; + private XNamespace _tns; + + protected readonly IVIFReportFactory _vifFactory; + + protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); + public static XNamespace VIF => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1"); + + public abstract string OutputDataType { get; } + + + protected XElement Vehicle { get; set; } + protected XElement Results { get; set; } + + + protected AbstractVIFReport(IVIFReportFactory vifFactory) + { + _vifFactory = vifFactory; + } + + public abstract void InitializeVehicleData(IDeclarationInputDataProvider inputData); + + #region Implementation of IXMLPrimaryVehicleReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + InitializeVehicleData(modelData.InputData); + Results = new XElement(VIF + XMLNames.Report_Results); + } + + private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>(); + public void WriteResult(XMLDeclarationReport.ResultEntry result) + { + results.Add(result); + } + + public void GenerateReport(XElement fullReportHash) + { + //ToDo add missing namespaces and + Report = new XDocument(new XElement(VIF + "VectoOutputMultistep", + new XAttribute("xmlns", VIF), + new XAttribute(XNamespace.Xmlns + "xsi", xsi)), + Vehicle, + Results + ); + } + + public XDocument Report { get; protected set; } + + public XNamespace Tns => _tns; + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs new file mode 100644 index 0000000000..3288d87e7d --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/IVIFReportFactory.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1 +{ + public interface IVIFReportFactory + { + IXMLPrimaryVehicleReport GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, + ArchitectureID archId, bool exempted, bool iepc, bool ihpc); + + + + + #region Vehicle + + IXmlTypeWriter GetConventionalLorryVehicleType(); + + + #endregion + + + + #region Components + + IXmlTypeWriter GetAdasType(); + IXmlTypeWriter GetAngelDriveType(); + IXmlTypeWriter GetAuxiliaryType(); + IXmlTypeWriter GetAxlegearType(); + IXmlTypeWriter GetAxleWheelsType(); + IXmlTypeWriter GetBoostingLimitationsType(); + IXmlTypeWriter GetElectricMotorTorqueLimitsType(); + IXmlTypeWriter GetEngineType(); + IXmlTypeWriter GetTorqueConvertType(); + IXmlTypeWriter GetTorqueLimitsType(); + IXmlTypeWriter GetTransmissionType(); + + #endregion + + + #region Groups + + IReportOutputGroup GetConventionalVehicleGroup(); + IReportOutputGroup GetPrimaryBusGeneralParameterGroup(); + IReportOutputGroup GetPrimaryBusChassisParameterGroup(); + IReportOutputGroup GetPrimaryBusRetarderParameterGroup(); + IReportOutputGroup GetPrimaryBusXeVParameterGroup(); + IReportOutputGroup GetHevIepcSVehicleGroup(); + IReportOutputGroup GetHevSxVehicleGroup(); + IReportOutputGroup GetIepcVehicleGroup(); + IReportOutputGroup GetPEVVehicleGroup(); + + + #endregion + + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs new file mode 100644 index 0000000000..01c6ab60c1 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/VIFReport/PrimaryVIFReport.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.VIFReport +{ + internal class PrimaryVIFReportBase : AbstractVIFReport + { + private string _outputDataType; + public PrimaryVIFReportBase(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Overrides of AbstractVIFReport + + public override string OutputDataType => _outputDataType; + + public override void InitializeVehicleData(IDeclarationInputDataProvider inputData) + { + + + + //Vehicle + //InputDataSignature + //ManufacturerRecordSignature + //Results + //ApplicationInformation + + + throw new NotImplementedException(); + } + + #endregion + } + + + + +} diff --git a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs index e448064bed..b4fab35d63 100644 --- a/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs +++ b/VectoMockup/VectoMockup/Ninject/VIFMockupModule.cs @@ -3,19 +3,111 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCore; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; +using TUGraz.VectoMockup.Reports; namespace TUGraz.VectoMockup.Ninject { - internal class VIFMockupModulen : AbstractNinjectModule + internal class VIFMockupModule : AbstractNinjectModule { #region Overrides of NinjectModule public override void Load() { - + Kernel.Bind<IVIFReportFactory>().To<MockupVIFReportFactory>() + .WhenInjectedExactlyInto<MockupReportFactory>().InSingletonScope(); } #endregion + + public class MockupVIFReportFactory : IVIFReportFactory + { + private IVIFReportFactory _vifReportFactoryImplementation; + + + public MockupVIFReportFactory(IVIFReportFactory vifReportFactoryImplementation) + { + _vifReportFactoryImplementation = vifReportFactoryImplementation; + } + + + #region Implementation of IVIFReportFactory + + public IXMLPrimaryVehicleReport GetVIFReport(VehicleCategory vehicleType, VectoSimulationJobType jobType, ArchitectureID archId, + bool exempted, bool iepc, bool ihpc) + { + return new MockupVIFReport( + _vifReportFactoryImplementation.GetVIFReport(vehicleType, jobType, archId, exempted, iepc, ihpc)); + } + + public IXmlTypeWriter GetConventionalLorryVehicleType() + { + return _vifReportFactoryImplementation.GetConventionalLorryVehicleType(); + } + + public IXmlTypeWriter GetTorqueConvertType() + { + return _vifReportFactoryImplementation.GetTorqueConvertType(); + } + + public IXmlTypeWriter GetTorqueLimitsType() + { + return _vifReportFactoryImplementation.GetTorqueLimitsType(); + } + + public IXmlTypeWriter GetTransmissionType() + { + return _vifReportFactoryImplementation.GetTransmissionType(); + } + + public IReportOutputGroup GetConventionalVehicleGroup() + { + return _vifReportFactoryImplementation.GetConventionalVehicleGroup(); + } + + public IReportOutputGroup GetPrimaryBusGeneralParameterGroup() + { + throw new NotImplementedException(); + } + + public IXmlTypeWriter GetAdasType() + { + return _vifReportFactoryImplementation.GetAdasType(); + } + + public IXmlTypeWriter GetAngelDriveType() + { + return _vifReportFactoryImplementation.GetAngelDriveType(); + } + + public IXmlTypeWriter GetAuxiliaryType() + { + return _vifReportFactoryImplementation.GetAuxiliaryType(); + } + + public IXmlTypeWriter GetAxlegearType() + { + return _vifReportFactoryImplementation.GetAxlegearType(); + } + + public IXmlTypeWriter GetAxleWheelsType() + { + return _vifReportFactoryImplementation.GetAxleWheelsType(); + } + + public IXmlTypeWriter GetEngineType() + { + return _vifReportFactoryImplementation.GetEngineType(); + } + + #endregion + } + } } diff --git a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs index 28e605c867..ad010f8813 100644 --- a/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs +++ b/VectoMockup/VectoMockup/Reports/MockupReportFactory.cs @@ -10,6 +10,7 @@ using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.XML; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9; using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1; namespace TUGraz.VectoMockup.Reports { @@ -17,6 +18,7 @@ namespace TUGraz.VectoMockup.Reports { private readonly IManufacturerReportFactory _mrfFactory; private readonly ICustomerInformationFileFactory _cifFactory; + private readonly IVIFReportFactory _vifFactory; #region Implementation of IXMLDeclarationReportFactory diff --git a/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs new file mode 100644 index 0000000000..476798affb --- /dev/null +++ b/VectoMockup/VectoMockup/Reports/MockupVIFReport.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile; + +namespace TUGraz.VectoMockup.Reports +{ + public class MockupVIFReport : IXMLPrimaryVehicleReport, IXMLMockupReport + { + private XDocument _report; + private XNamespace _tns; + + + public MockupVIFReport(IXMLPrimaryVehicleReport vifReport) + { + + } + + + + //private XDocument _report; + //private VectoRunData _modelData; + + + //#region Implementation of IXMLMockupReport + + //public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + //{ + // throw new NotImplementedException(); + //} + + //public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + //{ + // throw new NotImplementedException(); + //} + + //#endregion + + //#region Implementation of IXMLMultistageReport + + //public void Initialize(VectoRunData modelData) + //{ + // _modelData = modelData; + //} + + //public XDocument Report => _report; + + //public void GenerateReport() + //{ + // throw new NotImplementedException(); + //} + + //#endregion + + #region Implementation of IXMLPrimaryVehicleReport + + public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes) + { + throw new NotImplementedException(); + } + + public void WriteResult(XMLDeclarationReport.ResultEntry result) + { + throw new NotImplementedException(); + } + + public void GenerateReport(XElement fullReportHash) + { + throw new NotImplementedException(); + } + + public XDocument Report => _report; + + public XNamespace Tns => _tns; + + #endregion + + #region Implementation of IXMLMockupReport + + public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue) + { + + } + + public void WriteMockupSummary(XMLDeclarationReport.ResultEntry resultValue) + { + } + + #endregion + } +} -- GitLab