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 45014ab6 authored by Harald Martini's avatar Harald Martini
Browse files

update some report bindings for iepc vehicles

parent df23893d
Branches
Tags
No related merge requests found
Showing
with 69 additions and 29 deletions
......@@ -162,8 +162,10 @@ namespace TUGraz.VectoCore.OutputData.FileIO
using (var xmlWriter = new XmlTextWriter(writer, Encoding.UTF8)) {
xmlWriter.Formatting = Formatting.Indented;
data.WriteTo(xmlWriter);
xmlWriter.Flush();
xmlWriter.Close();
}
}
......
......@@ -6,9 +6,11 @@ using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common;
......@@ -33,6 +35,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
protected XElement Vehicle { get; set; }
protected IVehicleDeclarationInputData Input { get; set; }
protected IResultsWriter Results { get; set; }
protected XElement InputDataIntegrity { get; set; }
......@@ -53,6 +57,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public virtual void Initialize(VectoRunData modelData)
{
if (modelData.VehicleData.VehicleClass.IsBus()) {
Input = modelData.InputData.PrimaryVehicleData.Vehicle;
} else {
Input = modelData.InputData.JobInputData.Vehicle;
}
InitializeVehicleData(modelData.InputData);
_ovc = modelData.VehicleData.OffVehicleCharging;
Results = _resultFactory.GetCIFResultsWriter(modelData.VehicleData.VehicleCategory.GetVehicleType(),
......@@ -87,6 +96,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
)
);
var lh = results.SingleOrDefault(res => res.Mission == MissionType.LongHaul && res.LoadingType == LoadingType.ReferenceLoad);
Vehicle.XPathSelectElement($"//*[local-name()='{XMLNames.VehicleGroupCO2}']").Value = DeclarationData
.GetVehicleGroupCO2StandardsGroup(Input).ToXMLFormat();
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(retVal);
......@@ -111,4 +125,6 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
}
}
......@@ -53,7 +53,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
Bind<IXMLCustomerReport>().To<HEV_S4_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
ArchitectureID.S4, false, false, false)));
Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.SerialHybridVehicle,
Bind<IXMLCustomerReport>().To<HEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry, VectoSimulationJobType.IEPC_S,
ArchitectureID.S_IEPC, false,true, false)));
Bind<IXMLCustomerReport>().To<PEV_E2_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(
......@@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
Bind<IXMLCustomerReport>().To<PEV_IEPC_Lorry_CIF>().Named(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(MRFNinjectModule.VehicleTypeAndArchitectureStringHelper.ToParams(
VehicleCategoryHelper.Lorry,
VectoSimulationJobType.BatteryElectricVehicle,
VectoSimulationJobType.IEPC_E,
ArchitectureID.E_IEPC,
false,
true,
......
......@@ -39,7 +39,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()),
new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
new XElement(_cif + XMLNames.VehicleGroupCO2, string.Empty), //the value of this element will be replaced later, write empty string to let the validation fail if the value is not replaced
//new XElement(_cif + XMLNames.VehicleGroupCO2, DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
};
return result;
......@@ -59,7 +60,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).Item1.GetClassNumber()),
new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()),
new XElement(_cif + XMLNames.VehicleGroupCO2, DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()),
};
return result;
}
......
......@@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using TUGraz.IVT.VectoXML.Writer;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
......@@ -113,6 +114,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
_allSuccess &= resultEntry.Status == VectoRun.Status.Success;
Results.Add(
resultEntry.Status == VectoRun.Status.Success ? GetSuccessResult(resultEntry) : GetErrorResult(resultEntry));
}
protected virtual XElement GetErrorResult(IResultEntry resultEntry)
......
......@@ -10,6 +10,7 @@ using System.Xml.XPath;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
......@@ -34,6 +35,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
protected bool _ovc = false;
protected XElement Vehicle { get; set; }
protected IVehicleDeclarationInputData Input { get; set; }
protected IResultsWriter Results { get; set; }
protected XElement InputDataIntegrity { get; set; }
......@@ -54,6 +57,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
public virtual void Initialize(VectoRunData modelData)
{
if (modelData.VehicleData.VehicleClass.IsBus())
{
Input = modelData.InputData.PrimaryVehicleData.Vehicle;
}
else
{
Input = modelData.InputData.JobInputData.Vehicle;
}
InitializeVehicleData(modelData.InputData);
_ovc = modelData.VehicleData.OffVehicleCharging;
......@@ -91,6 +102,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
)
);
//var lh = results.SingleOrDefault(res => res.Mission == MissionType.LongHaul && res.LoadingType == LoadingType.ReferenceLoad);
Vehicle.XPathSelectElement($"//*[local-name()='{XMLNames.VehicleGroupCO2}']").Value = DeclarationData
.GetVehicleGroupCO2StandardsGroup(Input).ToXMLFormat();
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(retVal);
......
......@@ -92,7 +92,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(
VehicleCategoryHelper.Lorry,
VectoSimulationJobType.SerialHybridVehicle,
VectoSimulationJobType.IEPC_S,
ArchitectureID.S_IEPC,
false,
true,
......@@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
false)));
Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(VehicleCategoryHelper.Lorry,
VectoSimulationJobType.BatteryElectricVehicle,
VectoSimulationJobType.IEPC_E,
ArchitectureID.E_IEPC,
false,
true,
......@@ -179,7 +179,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
Bind<IXMLManufacturerReport>().To<HEV_IEPC_S_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(
VehicleCategoryHelper.Van,
VectoSimulationJobType.SerialHybridVehicle,
VectoSimulationJobType.IEPC_S,
ArchitectureID.S_IEPC,
false,
true,
......@@ -211,7 +211,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
Bind<IXMLManufacturerReport>().To<PEV_IEPC_LorryManufacturerReport>().Named(VehicleTypeAndArchitectureStringHelper.CreateName.Invoke(VehicleTypeAndArchitectureStringHelper.ToParams(
VehicleCategoryHelper.Van,
VectoSimulationJobType.BatteryElectricVehicle,
VectoSimulationJobType.IEPC_E,
ArchitectureID.E_IEPC,
false,
true,
......
......@@ -38,7 +38,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)),
new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()),
new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
new XElement(_mrf + XMLNames.VehicleGroupCO2, string.Empty), //the value of this element will be replaced later, write empty string to let the validation fail if the value is not replaced
//new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
};
}
......
......@@ -47,7 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
iepcXElement.Add(
new XElement(_mrf + "NrOfGears", iepcData.Gears.Count),
new XElement(_mrf + "LowestTotalTransmissionRatio", (iepcData.Gears.OrderByDescending(g => g.GearNumber).First().Ratio
* inputData.JobInputData.Vehicle.Components.AxleGearInputData.Ratio).ToXMLFormat(3)),
* inputData.JobInputData.Vehicle.Components.AxleGearInputData?.Ratio ?? 1.0d).ToXMLFormat(3)),
new XElement(_mrf + XMLNames.IEPC_DifferentialIncluded, iepcData.DifferentialIncluded),
new XElement(_mrf + XMLNames.IEPC_DesignTypeWheelMotor, iepcData.DesignTypeWheelMotor),
new XElement(_mrf + XMLNames.Component_CertificationMethod, iepcData.CertificationMethod)
......
......@@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.OutputData.XML
DeclarationData.SetElectricRangesPEV(this, runData, data);
}
if (data.HasGearbox) {
if (data.HasGearbox && !runData.JobType.IsOneOf(VectoSimulationJobType.IEPC_E, VectoSimulationJobType.IEPC_S)) {
var gbxOutSignal = runData.Retarder.Type == RetarderType.TransmissionOutputRetarder
? ModalResultField.P_retarder_in
: (runData.AngledriveData == null ? ModalResultField.P_axle_in : ModalResultField.P_angle_in);
......
using System;
using System.Linq;
using System.Data.Common;
using System.Diagnostics;
using System.Threading;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformationFile.CustomerInformationFile_0_9.CIFWriter;
using TUGraz.VectoCommon.Utils;
namespace TUGraz.VectoCore.Utils.Ninject
{
......@@ -24,6 +21,7 @@ namespace TUGraz.VectoCore.Utils.Ninject
public class VehicleTypeAndArchitectureStringHelperReport : IVehicleTypeAndArchitectureStringHelperReport
{
public CombineArgumentsToNameInstanceProvider.CombineToName CreateName { get; } = (arguments => {
//may be called with first argument of type string (when defining the bindings) or VehicleCategory when using the factory
......@@ -36,11 +34,17 @@ namespace TUGraz.VectoCore.Utils.Ninject
VectoSimulationJobType jobType = (VectoSimulationJobType)arguments[1];
ArchitectureID archId = (ArchitectureID)arguments[2];
if (jobType == VectoSimulationJobType.ParallelHybridVehicle){
archId = ArchitectureID.P1; //same report for all p-hevs
}
bool exempted = (bool)arguments[3];
bool iepc = (bool)arguments[4];
bool ihpc = (bool)arguments[5];
var classification =
new VehicleTypeAndArchitectureStringHelperRundata.VehicleClassification(jobType, archId, vehicleType,
exempted, iepc, ihpc);
return classification.ToString();
string result = "";
if (exempted) {
......
......@@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.Tests.InputData.DeclarationDataAdapterTest
new[] { "Full electric steering gear" },
"Vacuum pump + elec. driven",
false,
TestName = "PEVAuxPass")]
TestName = "PHEVAuxPass")]
public void HeavyLorryPEVAuxiliaryDataAdapterFailTest(VectoSimulationJobType jobType, string[] spTechnologies, string psTechnology, bool fail, int? steeredAxles = null)
{
var dataAdapter = new HeavyLorryPEVAuxiliaryDataAdapter();
......@@ -96,17 +96,10 @@ namespace TUGraz.VectoCore.Tests.InputData.DeclarationDataAdapterTest
throw new Exception("Exception occured", ex);
}
}
}
}
}
public static class AuxiliariesInputMockHelper
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment