Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit f83d06f3 authored by Franz KOBER josef's avatar Franz KOBER josef
Browse files

added electric machine type component

parent be23a694
No related branches found
No related tags found
No related merge requests found
using System.Collections.Generic;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components
{
public class VIFElectricMachineType : VIFElectricMachineGENType
{
public VIFElectricMachineType(IVIFReportFactory vifFactory) : base(vifFactory) { }
#region Implementation of IXmlTypeWriter
public override XElement GetElement(IDeclarationInputDataProvider inputData)
{
var electricMachineEntries = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries;
if (electricMachineEntries == null || electricMachineEntries.Count == 0)
return null;
foreach (var electricMachine in electricMachineEntries) {
if (electricMachine.Position != PowertrainPosition.GEN)
return GetElectricMachineType(electricMachine);
}
return null;
}
#endregion
private XElement GetElectricMachineType(ElectricMachineEntry<IElectricMotorDeclarationInputData> electricMachineData)
{
return new XElement(_vif + XMLNames.ElectricMachineSystem,
new XElement(_vif + XMLNames.ElectricMachine_Count, electricMachineData.Count),
_vifFactory.GetElectricMachineSystemType().GetElement(electricMachineData.ElectricMachine),
Get25GearRatio(electricMachineData.RatioPerGear),
GetADC(electricMachineData.ADC),
new XElement(_vif + XMLNames.ElectricMachine_PowertrainPosition, electricMachineData.Position.ToXmlFormat()));
}
private XElement Get25GearRatio(double[] gearRatios)
{
if (gearRatios == null)
return null;
var results = new List<XElement>();
for (int i = 0; i < gearRatios.Length; i++) {
results.Add(new XElement(_vif + XMLNames.Gear_Ratio, new XAttribute(XMLNames.ElectricMachine_P2_5GearRatios_Gear_Attr, i + 1),
gearRatios[i].ToXMLFormat(3)));
}
return new XElement(_vif + XMLNames.ElectricMachine_P2_5GearRatios, results);
}
}
}
......@@ -44,6 +44,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
IXmlElectricMachineSystemType GetElectricMachineSystemMeasuredType();
IXmlElectricMachineSystemType GetElectricMachineSystemIHPCMeasuredType();
IXmlElectricMachineSystemType GetElectricMachineSystemStandardValueType();
IXmlTypeWriter GetElectricMachineType();
IXmlTypeWriter GetElectricMotorTorqueLimitsType();
IXmlTypeWriter GetEngineType();
IXmlTypeWriter GetTorqueConvertType();
......
......@@ -105,6 +105,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
Bind<IXmlElectricMachineSystemType>().To<XmlElectricMachineSystemMeasuredType>().When(AccessedViaVIFFactory)
.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineSystemMeasuredType());
Bind<IXmlTypeWriter>().To<VIFElectricMachineType>().When(AccessedViaVIFFactory)
.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineType());
Bind<IXmlElectricMachineSystemType>().To<XmlElectricMachineSystemIHPCMeasuredType>().When(AccessedViaVIFFactory)
.NamedLikeFactoryMethod((IVIFReportFactory f) => f.GetElectricMachineSystemIHPCMeasuredType());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment