Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 25362775 authored by Harald Martini's avatar Harald Martini
Browse files

Merge branch 'feature/VECTO-1572-mockup-vecto' of...

Merge branch 'feature/VECTO-1572-mockup-vecto' of https://citnet.tech.ec.europa.eu/CITnet/stash/scm/vecto/hm_vecto-dev into feature/VECTO-1572-mockup-vecto
parents 2266e629 a3f0bd3a
Branches
Tags
No related merge requests found
Showing
with 517 additions and 78 deletions
......@@ -74,5 +74,16 @@ namespace TUGraz.VectoCommon.Models
{
return ftype.GetLabel();
}
public static bool IsGaseous(this FuelType ftype)
{
switch (ftype) {
case (FuelType.NGPI):
case (FuelType.NGCI):
return true;
default:
return false;
}
}
}
}
\ No newline at end of file
......@@ -19,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", "16.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class XMLNames {
......@@ -1473,6 +1473,15 @@ namespace TUGraz.VectoCommon.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to ConventionalLorryOutputType.
/// </summary>
public static string CIF_OutputDataType_ConventionalLorryOutputType {
get {
return ResourceManager.GetString("CIF_OutputDataType_ConventionalLorryOutputType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ADC.
/// </summary>
......@@ -3363,6 +3372,24 @@ namespace TUGraz.VectoCommon.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to ConventionalLorryManufacturerOutputDataType.
/// </summary>
public static string MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType {
get {
return ResourceManager.GetString("MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ConventionalPrimaryBusManufacturerOutputDataType.
/// </summary>
public static string MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType {
get {
return ResourceManager.GetString("MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to PowerMap.
/// </summary>
......
......@@ -1911,4 +1911,13 @@
<data name="REESS" xml:space="preserve">
<value>ElectricEnergyStorage</value>
</data>
<data name="MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType" xml:space="preserve">
<value>ConventionalLorryManufacturerOutputDataType</value>
</data>
<data name="MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType" xml:space="preserve">
<value>ConventionalPrimaryBusManufacturerOutputDataType</value>
</data>
<data name="CIF_OutputDataType_ConventionalLorryOutputType" xml:space="preserve">
<value>ConventionalLorryOutputType</value>
</data>
</root>
\ No newline at end of file
......@@ -139,7 +139,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl {
fuels = vehicle.Components.EngineInputData.EngineModes.Select(x => x.Fuels.Select(f => DeclarationData.FuelData.Lookup(f.FuelType, vehicle.TankSystem)).ToList())
.ToList();
}
Report.InitializeReport(powertrainConfig, fuels, InputDataProvider);
Report.InitializeReport(powertrainConfig, fuels);
}
protected virtual PTOData CreateDefaultPTOData()
......
......@@ -180,6 +180,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
InputDataHash = InputDataProvider.XMLHash,
SimulationType = SimulationType.DistanceCycle,
GearshiftParameters = _gearshiftData,
InputData = InputDataProvider
};
simulationRunData.EngineData.FuelMode = modeIdx;
simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass;
......
......@@ -13,6 +13,7 @@ using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.OutputData;
using TUGraz.VectoCore.OutputData.XML;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9;
namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
......@@ -22,7 +23,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
public DeclarationModeMockupTruckVectoRunDataFactory(IDeclarationInputDataProvider dataProvider,
IDeclarationReport report) : base(dataProvider, report, false)
{
if (report is IMockupReport mockupReport) {
mockupReport.Mockup = true;
}
}
#region Overrides of AbstractDeclarationVectoRunDataFactory
......@@ -40,9 +43,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle, int modeIdx, Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
{
VectoRunData runData;
if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle)
{
return new VectoRunData
runData = new VectoRunData
{
Exempted = true,
Report = Report,
......@@ -50,12 +54,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
VehicleData = CreateMockupVehicleData(vehicle),
InputDataHash = InputDataProvider.XMLHash
};
}
} else {
var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
return new VectoRunData() {
runData = new VectoRunData()
{
Loading = loading.Key,
Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()),
ExecutionMode = ExecutionMode.Declaration,
......@@ -68,6 +70,14 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.MockupRunDataFactories
};
}
runData.InputData = InputDataProvider;
return runData;
}
protected override void Initialize()
{
......
......@@ -157,6 +157,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
[JsonIgnore]
public IMultistageVIFInputData MultistageVIFInputData { get; internal set; }
[JsonIgnore]
public IDeclarationInputDataProvider InputData { get; internal set; }
public class AuxData
{
// ReSharper disable once InconsistentNaming
......
......@@ -52,7 +52,6 @@ namespace TUGraz.VectoCore.Models.Simulation
bool CreateFollowUpSimulatorFactory { get; set; }
bool MockUpRun { get; set; }
/// <summary>
/// Creates powertrain and initializes it with the component's data.
......
......@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
protected bool _simulate = true;
//TODO: set with preprocessor directive remove from interface
public bool MockUpRun { get; set; } = true;
public static bool MockUpRun { get; set; } = false;
public ISimulatorFactory FollowUpSimulatorFactory
......
......@@ -68,8 +68,7 @@ namespace TUGraz.VectoCore.Models.Simulation
{
#region Implementation of IDeclarationReport
public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null)
public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
}
......@@ -93,8 +92,7 @@ namespace TUGraz.VectoCore.Models.Simulation
{
#region Implementation of IDeclarationReport
public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null)
public void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
}
......
......@@ -51,8 +51,7 @@ namespace TUGraz.VectoCore.OutputData
* This methodd is called once befor creating the simulation runs with a temporary
* VectoRunData instance
*/
void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null);
void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
/**
* called when creating the simulation run (before starting the simulations)
......@@ -210,7 +209,6 @@ namespace TUGraz.VectoCore.OutputData
protected abstract void WriteResult(T result);
public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null);
public abstract void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes);
}
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.Impl;
namespace TUGraz.VectoCore.OutputData.Mockup
{
//public void Run()
//{
// if (!FoundPreviousResults)
// {
// (GetContainer().ModalData as ModalDataContainer).ModalDataContainerFinished += DummyRun_ModalDataContainerFinished;
// _run.Run();
// }
// else
// {
// //TODO HM
// Log.Warn($"[DEV ONLY!] Using mod data: {_dummyFilePath}");
// var modDataContainer = GetContainer().ModalData as ModalDataContainer;
// modDataContainer.ReadDataFromXml(_dummyFilePath);
// modDataContainer.Finish(VectoRun.Status.Success);
// }
//}
//private void DummyRun_ModalDataContainerFinished(object sender, ModalDataContainer.ModalDataContainerFinishedEventArgs e)
//{
// if (FinishedWithoutErrors)
// {
// e.DataOnFinish.WriteXml(_dummyFilePath, false);
// Log.Warn($"[DEV ONLY!] Data written to {_dummyFilePath}:");
// }
//}
internal class MockupModalDataContainer : IModalDataContainer
{
private IModalDataContainer _modalDataContainerImplementation;
public MockupModalDataContainer(IModalDataContainer modalDataContainer)
{
_modalDataContainerImplementation = modalDataContainer;
}
#region MockupImplementation
public Second Duration => Second.Create(60*60*1);
public Meter Distance => Meter.Create(100 * 1000);
#endregion
#region Implementation of IModalDataContainer
public object this[ModalResultField key]
{
get => _modalDataContainerImplementation[key];
set => _modalDataContainerImplementation[key] = value;
}
public object this[ModalResultField key, IFuelProperties fuel]
{
get => _modalDataContainerImplementation[key, fuel];
set => _modalDataContainerImplementation[key, fuel] = value;
}
public object this[ModalResultField key, PowertrainPosition pos]
{
get => _modalDataContainerImplementation[key, pos];
set => _modalDataContainerImplementation[key, pos] = value;
}
public object this[ModalResultField key, int? pos]
{
get => _modalDataContainerImplementation[key, pos];
set => _modalDataContainerImplementation[key, pos] = value;
}
public object this[string auxId]
{
get => _modalDataContainerImplementation[auxId];
set => _modalDataContainerImplementation[auxId] = value;
}
public void CommitSimulationStep()
{
_modalDataContainerImplementation.CommitSimulationStep();
}
public IList<IFuelProperties> FuelData => _modalDataContainerImplementation.FuelData;
public VectoRun.Status RunStatus => _modalDataContainerImplementation.RunStatus;
public string Error => _modalDataContainerImplementation.Error;
public string StackTrace => _modalDataContainerImplementation.StackTrace;
public IEnumerable<T> GetValues<T>(ModalResultField key)
{
return _modalDataContainerImplementation.GetValues<T>(key);
}
public IEnumerable<T> GetValues<T>(DataColumn col)
{
return _modalDataContainerImplementation.GetValues<T>(col);
}
public IEnumerable<T> GetValues<T>(Func<DataRow, T> selectorFunc)
{
return _modalDataContainerImplementation.GetValues(selectorFunc);
}
public Dictionary<string, DataColumn> Auxiliaries => _modalDataContainerImplementation.Auxiliaries;
public T TimeIntegral<T>(ModalResultField field, Func<SI, bool> filter = null) where T : SIBase<T>
{
return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
}
public T TimeIntegral<T>(string field, Func<SI, bool> filter = null) where T : SIBase<T>
{
return _modalDataContainerImplementation.TimeIntegral<T>(field, filter);
}
public void SetDataValue(string fieldName, object value)
{
_modalDataContainerImplementation.SetDataValue(fieldName, value);
}
public void AddAuxiliary(string id, string columnName = null)
{
_modalDataContainerImplementation.AddAuxiliary(id, columnName);
}
public void Finish(VectoRun.Status runStatus, Exception exception = null)
{
_modalDataContainerImplementation.Finish(runStatus, exception);
}
public void FinishSimulation()
{
_modalDataContainerImplementation.FinishSimulation();
}
public string GetColumnName(IFuelProperties fuelData, ModalResultField mrf)
{
return _modalDataContainerImplementation.GetColumnName(fuelData, mrf);
}
public void Reset()
{
_modalDataContainerImplementation.Reset();
}
public Func<Second, Joule, Joule> AuxHeaterDemandCalc
{
get => _modalDataContainerImplementation.AuxHeaterDemandCalc;
set => _modalDataContainerImplementation.AuxHeaterDemandCalc = value;
}
public KilogramPerWattSecond EngineLineCorrectionFactor(IFuelProperties fuel)
{
return _modalDataContainerImplementation.EngineLineCorrectionFactor(fuel);
}
public void CalculateAggregateValues()
{
_modalDataContainerImplementation.CalculateAggregateValues();
}
public void AddElectricMotor(PowertrainPosition pos)
{
_modalDataContainerImplementation.AddElectricMotor(pos);
}
public KilogramPerWattSecond VehicleLineSlope(IFuelProperties fuel)
{
return _modalDataContainerImplementation.VehicleLineSlope(fuel);
}
public bool HasCombustionEngine => _modalDataContainerImplementation.HasCombustionEngine;
public WattSecond TotalElectricMotorWorkDrive(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.TotalElectricMotorWorkDrive(emPos);
}
public WattSecond TotalElectricMotorWorkRecuperate(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.TotalElectricMotorWorkRecuperate(emPos);
}
public WattSecond TotalElectricMotorMotWorkDrive(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.TotalElectricMotorMotWorkDrive(emPos);
}
public WattSecond TotalElectricMotorMotWorkRecuperate(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.TotalElectricMotorMotWorkRecuperate(emPos);
}
public PerSecond ElectricMotorAverageSpeed(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorAverageSpeed(emPos);
}
public double ElectricMotorEfficiencyDrive(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorEfficiencyDrive(emPos);
}
public double ElectricMotorEfficiencyGenerate(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorEfficiencyGenerate(emPos);
}
public double ElectricMotorMotEfficiencyDrive(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorMotEfficiencyDrive(emPos);
}
public double ElectricMotorMotEfficiencyGenerate(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorMotEfficiencyGenerate(emPos);
}
public WattSecond ElectricMotorOffLosses(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorOffLosses(emPos);
}
public WattSecond ElectricMotorLosses(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorLosses(emPos);
}
public WattSecond ElectricMotorMotLosses(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorMotLosses(emPos);
}
public WattSecond ElectricMotorTransmissionLosses(PowertrainPosition emPos)
{
return _modalDataContainerImplementation.ElectricMotorTransmissionLosses(emPos);
}
public double REESSStartSoC()
{
return _modalDataContainerImplementation.REESSStartSoC();
}
public double REESSEndSoC()
{
return _modalDataContainerImplementation.REESSEndSoC();
}
public WattSecond REESSLoss()
{
return _modalDataContainerImplementation.REESSLoss();
}
public ICorrectedModalData CorrectedModalData => _modalDataContainerImplementation.CorrectedModalData;
#endregion
}
}
......@@ -8,14 +8,21 @@ using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9
{
public abstract class AbstractCustomerReport : IXMLCustomerReport
public abstract class AbstractCustomerReport : IXMLCustomerReport, IXMLMockupReport
{
protected readonly ICustomerInformationFileFactory _cifFactory;
protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
protected XElement Vehicle { get; set; }
protected XElement Results { get; set; }
protected abstract string OutputDataType { get; }
protected AbstractCustomerReport(ICustomerInformationFileFactory cifFactory)
{
......@@ -29,18 +36,37 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
throw new NotImplementedException();
InitializeVehicleData(modelData.InputData);
Results = new XElement(Cif + "Results");
}
public XDocument Report { get; protected set; }
private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
{
throw new NotImplementedException();
results.Add(resultValue);
}
public void GenerateReport(XElement resultSignature)
{
throw new NotImplementedException();
Report = new XDocument(new XElement(Cif + "VectoOutput",
new XAttribute("xmlns", Cif),
new XAttribute(XNamespace.Xmlns + "xsi", xsi),
new XAttribute(XNamespace.Xmlns + "mrf", LorryManufacturerReportBase.Mrf),
new XAttribute(xsi + "type", $"{OutputDataType}"),
Vehicle,
Results));
}
#endregion
#region Implementation of IXMLMockupReport
public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
{
Results.Add(MockupResultReader.GetCIFMockupResult(OutputDataType, resultValue, Cif + "Result"));
}
#endregion
......
......@@ -5,6 +5,7 @@ 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;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport;
......@@ -32,6 +33,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
#region LorryCIF
public class ConventionalLorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => XMLNames.CIF_OutputDataType_ConventionalLorryOutputType;
public ConventionalLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -39,7 +41,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetConventionalLorryVehicleType().GetElement(inputData);
GenerateReport("ConventionalLorryOutputType");
}
#endregion
......@@ -47,6 +48,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class HEV_PxLorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_Px_LorryOutputType";
public HEV_PxLorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -55,13 +57,13 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
{
var vehicle = _cifFactory.GetHEV_PxLorryVehicleType();
Vehicle = _cifFactory.GetHEV_PxLorryVehicleType().GetElement(inputData);
GenerateReport("HEV_Px_LorryOutputType");
}
#endregion
}
public class HEV_S2_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_S2_LorryOutputType";
public HEV_S2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -69,7 +71,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV_S2_LorryOutputType");
}
#endregion
......@@ -77,6 +78,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class HEV_S3_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_S3_LorryOutputType";
public HEV_S3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -84,7 +86,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV_S3_LorryOutputType");
}
#endregion
......@@ -92,6 +93,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class HEV_S4_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_S4_LorryOutputType";
public HEV_S4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -99,7 +101,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV_S4_LorryOutputType");
}
#endregion
......@@ -107,6 +108,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class HEV_IEPC_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_IEPC_S_LorryOutputType";
public HEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -114,7 +116,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetHEV_IEPC_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV_IEPC_S_LorryOutputType");
}
#endregion
......@@ -122,6 +123,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class PEV_E2_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "PEV_E2_LorryOutputType";
public PEV_E2_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -129,7 +131,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV_E2_LorryOutputType");
}
#endregion
......@@ -137,6 +138,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class PEV_E3_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "PEV_E3_LorryOutputType";
public PEV_E3_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -144,7 +146,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV_E3_LorryOutputType");
}
#endregion
......@@ -152,6 +153,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class PEV_E4_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "PEV_E4_LorryOutputType";
public PEV_E4_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -159,7 +161,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV_E4_LorryOutputType");
}
#endregion
......@@ -167,6 +169,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public class PEV_IEPC_Lorry_CIF : CustomerInformationFile
{
protected override string OutputDataType => "PEV_IEPC_LorryOutputType";
public PEV_IEPC_Lorry_CIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCustomerReport
......@@ -174,7 +177,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV_IEPC_LorryOutputType");
}
#endregion
......@@ -193,6 +195,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
#region CompletedBus
public class Conventional_CompletedBusCIF : CustomerInformationFile
{
protected override string OutputDataType => "Conventional_CompletedBusOutputType";
public Conventional_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
{
}
......@@ -200,13 +204,13 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
GenerateReport("Conventional_CompletedBusOutputType");
}
}
public class HEV_CompletedBusCIF : CustomerInformationFile
{
protected override string OutputDataType => "HEV_CompletedBusOutputType";
public HEV_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
{
}
......@@ -214,12 +218,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetHEV_CompletedBusVehicleType().GetElement(inputData);
GenerateReport("HEV_CompletedBusOutputType");
}
}
public class PEV_CompletedBusCIF : CustomerInformationFile
{
protected override string OutputDataType => "PEV_CompletedBusOutputType";
public PEV_CompletedBusCIF(ICustomerInformationFileFactory cifFactory) : base(cifFactory)
{
}
......@@ -227,7 +231,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _cifFactory.GetPEV_CompletedBusVehicleType().GetElement(inputData);
GenerateReport("PEV_CompltedBusOutputType");
}
}
......
......@@ -6,22 +6,31 @@ using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9
{
internal abstract class AbstractManufacturerReport : IXMLManufacturerReport
internal interface IXMLMockupReport
{
void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue);
}
internal abstract class AbstractManufacturerReport : IXMLManufacturerReport, IXMLMockupReport
{
protected XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
protected readonly IManufacturerReportFactory _mRFReportFactory;
protected XElement Results { get; set; }
protected XElement Vehicle { get; set; }
public abstract string OutputDataType { get; } //also used as name for the mockup result element
protected AbstractManufacturerReport(IManufacturerReportFactory MRFReportFactory)
{
......@@ -34,20 +43,43 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
public void Initialize(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
InitializeVehicleData(modelData.InputData);
Results = new XElement(Mrf + XMLNames.Report_Results);
}
public XDocument Report { get; protected set; }
private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
{
throw new NotImplementedException();
}
public void WriteMockupResult(XMLDeclarationReport.ResultEntry resultValue)
{
Results.Add(MockupResultReader.GetMRFMockupResult(OutputDataType, resultValue, Mrf + "Result"));
}
public void GenerateReport()
{
throw new NotImplementedException();
Report = new XDocument(new XElement(Mrf + "VectoOutput",
new XAttribute("xmlns", Mrf),
new XAttribute(XNamespace.Xmlns + "xsi", xsi),
new XAttribute(xsi + "type", $"{OutputDataType}"),
Vehicle,
Results));
}
#endregion
}
}
......@@ -31,6 +31,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
......@@ -47,6 +49,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
......@@ -62,6 +66,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetConventional_CompletedBusVehicleType().GetElement(inputData);
......
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
{
internal abstract class LorryManufacturerReportBase : AbstractManufacturerReport
{
public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
public LorryManufacturerReportBase(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
{
}
protected void GenerateReport(string outputDataType)
{
......@@ -23,6 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
internal class ConventionalLorryManufacturerReport : LorryManufacturerReportBase
{
public ConventionalLorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
{
......@@ -30,11 +37,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType =>
XMLNames.MRF_OutputDataType_ConventionalLorryManufacturerOutputDataType;
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetConventionalLorryVehicleType().GetElement(inputData);
GenerateReport("ConventionalLorryManufacturerOutputDataType");
}
......@@ -44,16 +54,18 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
internal class HEV_Px_IHPC_LorryManufacturerReport : LorryManufacturerReportBase
{
public HEV_Px_IHPC_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory) { }
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "HEV-Px_IHPCLorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_Px_IHCP_LorryVehicleType().GetElement(inputData);
//TODO: REMOVE
GenerateReport("HEV-Px_IHPCLorryManufacturerOutputDataType");
GenerateReport(OutputDataType);
}
......@@ -67,10 +79,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "HEV-S2_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S2_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV-S2_LorryManufacturerOutputDataType");
GenerateReport(OutputDataType);
}
#endregion
......@@ -78,6 +92,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
internal class HEV_S3_LorryManufacturerReport : LorryManufacturerReportBase
{
public override string OutputDataType => "HEV-S3_LorryManufacturerOutputDataType";
public HEV_S3_LorryManufacturerReport(IManufacturerReportFactory MRFReportFactory) : base(MRFReportFactory)
{
......@@ -88,7 +104,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S3_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV-S3_LorryManufacturerOutputDataType");
GenerateReport(OutputDataType);
}
#endregion
......@@ -100,10 +116,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "HEV-S4_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S4_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV-S4_LorryManufacturerOutputDataType");
}
#endregion
......@@ -115,10 +132,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "HEV-IEPC-S_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_IEPC_S_LorryVehicleType().GetElement(inputData);
GenerateReport("HEV-IEPC-S_LorryManufacturerOutputDataType");
}
#endregion
......@@ -130,10 +149,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "PEV-E2_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E2_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV-E2_LorryManufacturerOutputDataType");
}
#endregion
......@@ -145,10 +166,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "PEV-E3_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E3_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV-E3_LorryManufacturerOutputDataType");
}
#endregion
......@@ -160,10 +182,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "PEV-E4_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E4_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV-E4_LorryManufacturerOutputDataType");
}
#endregion
......@@ -175,10 +198,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => "PEV-IEPC_LorryManufacturerOutputDataType";
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_IEPC_LorryVehicleType().GetElement(inputData);
GenerateReport("PEV-IEPC_LorryManufacturerOutputDataType");
}
#endregion
......
using System;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReport
......@@ -27,11 +28,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType => XMLNames.MRF_OutputDataType_ConventionalPrimaryBusManufacturerOutputDataType;
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetConventional_PrimaryBusVehicleType().GetElement(inputData);
GenerateReport("ConventionalPrimaryBusManufacturerOutputDataType");
}
#endregion
......@@ -43,6 +45,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_Px_IHPC_PrimaryBusVehicleType().GetElement(inputData);
......@@ -61,6 +65,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S2_PrimaryBusVehicleType().GetElement(inputData);
......@@ -77,6 +83,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S3_PrimaryBusVehicleType().GetElement(inputData);
......@@ -92,6 +100,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_S4_PrimaryBusVehicleType().GetElement(inputData);
......@@ -108,6 +118,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetHEV_IEPC_S_PrimaryBusVehicleType().GetElement(inputData);
......@@ -123,6 +135,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E2_PrimaryBusVehicleType().GetElement(inputData);
......@@ -139,6 +153,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E3_PrimaryBusVehicleType().GetElement(inputData);
......@@ -159,6 +175,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_E4_PrimaryBusVehicleType().GetElement(inputData);
......@@ -175,6 +193,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
#region Overrides of AbstractManufacturerReport
public override string OutputDataType { get; }
public override void InitializeVehicleData(IDeclarationInputDataProvider inputData)
{
Vehicle = _mRFReportFactory.GetPEV_IEPC_PrimaryBusVehicleType().GetElement(inputData);
......
......@@ -345,8 +345,7 @@ namespace TUGraz.VectoCore.OutputData.XML
return retVal;
}
public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null)
public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
VehicleClass = modelData.VehicleData.VehicleClass;
if (VehicleClass.IsBus()) {
......
......@@ -226,8 +226,7 @@ namespace TUGraz.VectoCore.OutputData.XML
}
public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes,
IDeclarationInputDataProvider inputData = null)
public override void InitializeReport(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes)
{
if (modelData.Exempted) {
WeightingGroup = WeightingGroup.Unknown;
......@@ -248,11 +247,6 @@ namespace TUGraz.VectoCore.OutputData.XML
InstantiateReports(modelData);
InitializeReports(modelData, fuelModes, inputData);
}
protected virtual void InitializeReports(VectoRunData modelData, List<List<FuelData.Entry>> fuelModes, IDeclarationInputDataProvider inputData)
{
ManufacturerRpt.Initialize(modelData, fuelModes);
CustomerRpt.Initialize(modelData, fuelModes);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment