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

Skip to content
Snippets Groups Projects
Commit c2a3fe13 authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

updating repo

parent a6380287
No related branches found
No related tags found
No related merge requests found
Showing
with 89 additions and 63 deletions
......@@ -26,9 +26,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public static XNamespace Cif => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput");
public static XNamespace Cif_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:CustomerOutput:v0.9");
public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#");
protected XElement Vehicle { get; set; }
protected XElement Results { get; set; }
protected XElement InputDataIntegrity { get; set; }
public abstract string OutputDataType { get; }
private bool _ovc = false;
......@@ -52,6 +57,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
InitializeVehicleData(modelData.InputData);
_ovc = modelData.VehicleData.Ocv;
Results = new XElement(Cif_0_9 + "Results");
InputDataIntegrity = new XElement(Cif_0_9 + XMLNames.Report_InputDataSignature,
modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash));
}
public XDocument Report { get; protected set; }
......@@ -75,6 +82,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(Cif + XMLNames.Report_DataWrap,
new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
Vehicle,
InputDataIntegrity,
new XElement(Cif_0_9 + XMLNames.Report_ResultData_Signature, resultSignature),
Results,
XMLHelper.GetApplicationInfo(Cif_0_9))
......
......@@ -289,8 +289,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
#region ComponentGroups
Bind<IReportOutputGroup>().To<EngineGroup>().When(AccessedViaCIFFactory)
.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetEngineGroup());
Bind<IReportOutputGroup>().To<TransmissionGroup>().When(AccessedViaCIFFactory)
Bind<IReportOutputGroup>().To<TransmissionGroupWithGearbox>().When(AccessedViaCIFFactory)
.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroup());
Bind<IReportOutputGroup>().To<TransmissionGroupWithoutGearbox>().When(AccessedViaCIFFactory)
.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetTransmissionGroupNoGearbox());
Bind<IReportOutputGroup>().To<AxleWheelsGroup>().When(AccessedViaCIFFactory)
.NamedLikeFactoryMethod((ICustomerInformationFileFactory f) => f.GetAxleWheelsGroup());
Bind<IReportOutputGroup>().To<ElectricMachineGroup>().When(AccessedViaCIFFactory)
......
......@@ -9,6 +9,7 @@ using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.Reader.ComponentData;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
using TUGraz.VectoCore.Utils;
......@@ -48,9 +49,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
}
public class TransmissionGroup : AbstractCIFGroupWriter
public class TransmissionGroupWithGearbox : AbstractCIFGroupWriter
{
public TransmissionGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
public TransmissionGroupWithGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCIFGroupWriter
......@@ -67,6 +68,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
#endregion
}
public class TransmissionGroupWithoutGearbox : AbstractCIFGroupWriter
{
public TransmissionGroupWithoutGearbox(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
#region Overrides of AbstractCIFGroupWriter
public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
{
var gearbox = inputData.JobInputData.Vehicle.Components.GearboxInputData;
return new List<XElement>() {
new XElement(_cif + "NrOfGears", 1)
};
}
#endregion
}
public class AxleWheelsGroup : AbstractCIFGroupWriter
{
public AxleWheelsGroup(ICustomerInformationFileFactory cifFactory) : base(cifFactory) { }
......@@ -137,7 +155,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
voltageLevels = new List<IElectricMotorVoltageLevel>();
var propulsionElectricMachines = inputData.JobInputData.Vehicle.Components.ElectricMachines.Entries
.Where(e => e.Position != PowertrainPosition.GEN);
totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower));
totalRatedPropulsionPower = propulsionElectricMachines.Sum((e => e.ElectricMachine.R85RatedPower * e.Count));
var groupedVoltageLevels = propulsionElectricMachines
.SelectMany(electricMachine => electricMachine.ElectricMachine.VoltageLevels).GroupBy((level => level.VoltageLevel));
foreach (IGrouping<Volt, IElectricMotorVoltageLevel> electricMotorVoltageLevels in groupedVoltageLevels) {
......@@ -145,7 +163,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
}
}
result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW")));
result.Add(new XElement(_cif + "TotalRatedPropulsionPower", totalRatedPropulsionPower.ValueAsUnit("kW", 0)));
var voltageLevelsXElement = new XElement(_cif + "VoltageLevels");
result.Add(voltageLevelsXElement);
......@@ -183,31 +201,31 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
.Select(es => es.REESSPack as ISuperCapDeclarationInputData).ToArray();
var totalStorageCapacity =
(batteries.Length > 0 ? batteries.Sum(bp => bp.Capacity) : 0.SI<AmpereSecond>()) +
(capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<AmpereSecond>());
(batteries.Length > 0 ? batteries.Sum(bp => bp.TotalStorageCapacity()) : 0.SI<WattSecond>()) +
(capacitors.Length > 0 ? capacitors.Sum(cap => GetStorageCapacity(cap)) : 0.SI<WattSecond>());
var totalUsableCapacity = (batteries.Length > 0
? batteries.Sum(bp => bp.TotalUsableCapacityInSimulation())
: 0.SI<AmpereSecond>()) +
: 0.SI<WattSecond>()) +
(capacitors.Length > 0
? capacitors.Sum(cap => GetTotalUsableCapacityInSimulation(cap))
: 0.SI<AmpereSecond>());
: 0.SI<WattSecond>());
return new List<XElement>() {
new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("Ah", 0)),
new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("Ah", 0))
new XElement(_cif + "TotalStorageCapacity", totalUsableCapacity.ValueAsUnit("kWh", 0)),
new XElement(_cif + "UsableStorageCapacity", totalStorageCapacity.ValueAsUnit("kWh", 0))
};
}
private AmpereSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap)
private WattSecond GetTotalUsableCapacityInSimulation(ISuperCapDeclarationInputData cap)
{
return GetStorageCapacity(cap) * 0.8;
}
private AmpereSecond GetStorageCapacity(ISuperCapDeclarationInputData cap)
private WattSecond GetStorageCapacity(ISuperCapDeclarationInputData cap)
{
var voltageRange = cap.MaxVoltage - cap.MinVoltage;
var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0;
return cap.Capacity * voltageRange * voltageRange / 2.0 / avgVoltage;
var voltageRange = cap.MaxVoltage - cap.MinVoltage;
//var avgVoltage = (cap.MaxVoltage + cap.MinVoltage) / 2.0;
return cap.Capacity * voltageRange * voltageRange / 2.0;
}
#endregion
......
......@@ -8,6 +8,7 @@ using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter;
using TUGraz.VectoCore.Utils;
......@@ -35,7 +36,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
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, vehicleData.VehicleCategory.ToXMLFormat())
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData))
};
return result;
......@@ -54,7 +55,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()),
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, consolidatedVehicleData.VehicleCategory.ToXMLFormat())
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData))
};
return result;
}
......@@ -168,7 +169,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + "OffVehicleChargingCapability", ovCc)
});
if (ovCc) {
result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW")));
result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1)));
}
return result;
}
......@@ -193,7 +194,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
});
if (ovCc)
{
result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW")));
result.Add(new XElement(_cif + "OffVehicleChargingMaxPower", inputData.JobInputData.Vehicle.MaxChargingPower.ValueAsUnit("kW", 1)));
}
return result;
}
......
......@@ -153,6 +153,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetEngineGroup().GetElements(inputData),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
GetRetarder(inputData),
GetAxleRatio(inputData),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
......@@ -178,6 +179,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetEngineGroup().GetElements(inputData),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
_cifFactory.GetLorryAuxGroup().GetElements(inputData)
);
......@@ -200,6 +202,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetEngineGroup().GetElements(inputData),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
GetRetarder(inputData),
GetAxleRatio(inputData, true),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
......@@ -249,6 +252,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
GetRetarder(inputData),
GetAxleRatio(inputData),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
......@@ -273,6 +277,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
_cifFactory.GetLorryAuxGroup().GetElements(inputData)
......@@ -295,6 +300,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
_cifFactory.GetPEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS).WithXName(_cif + "ADAS"),
_cifFactory.GetElectricMachineGroup().GetElements(inputData),
_cifFactory.GetREESSGroup().GetElements(inputData),
_cifFactory.GetTransmissionGroupNoGearbox().GetElements(inputData),
GetRetarder(inputData),
GetAxleRatio(inputData, true),
_cifFactory.GetAxleWheelsGroup().GetElements(inputData),
......
......@@ -42,6 +42,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
IReportOutputGroup GetConventionalLorryVehicleSequenceGroupWriter();
IReportOutputGroup GetEngineGroup();
IReportOutputGroup GetTransmissionGroup();
IReportOutputGroup GetTransmissionGroupNoGearbox();
IReportOutputGroup GetAxleWheelsGroup();
IReportOutputGroup GetLorryAuxGroup();
IReportOutputGroup GetCompletedBusAuxGroup();
......
......@@ -24,6 +24,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
public static XNamespace Mrf => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput");
public static XNamespace Mrf_0_9 => XNamespace.Get("urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.9");
public static XNamespace _di => XNamespace.Get("http://www.w3.org/2000/09/xmldsig#");
protected readonly IManufacturerReportFactory _mRFReportFactory;
......@@ -33,6 +34,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
protected XElement Results { get; set; }
protected XElement Vehicle { get; set; }
protected XElement InputDataIntegrity { get; set; }
protected XElement Signature { get; set; }
private VectoRunData _modelData;
......@@ -58,11 +61,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
_ovc = modelData.VehicleData.Ocv;
_modelData = modelData;
Results = new XElement(Mrf_0_9 + XMLNames.Report_Results);
InputDataIntegrity = new XElement(Mrf_0_9 + XMLNames.Report_InputDataSignature,
modelData.InputData.XMLHash == null ? XMLHelper.CreateDummySig(_di) : new XElement(modelData.InputData.XMLHash));
}
public XDocument Report { get; protected set; }
private List<XMLDeclarationReport.ResultEntry> results = new List<XMLDeclarationReport.ResultEntry>();
public void WriteResult(XMLDeclarationReport.ResultEntry resultValue)
{
......@@ -82,6 +88,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(Mrf + XMLNames.Report_DataWrap,
new XAttribute(xsi + XMLNames.XSIType, $"{OutputDataType}"),
Vehicle,
InputDataIntegrity,
Results,
XMLHelper.GetApplicationInfo(Mrf_0_9))
)
......
......@@ -4,10 +4,13 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportGroupWriter
......@@ -40,7 +43,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
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, vehicleData.VehicleCategory.ToXMLFormat()),
new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData)),
};
}
......
......@@ -7,6 +7,7 @@ using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
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.ManufacturerReportGroupWriter.Vehicle.Lorry
{
......@@ -24,7 +25,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(_mrf + XMLNames.Vehicle_DualFuelVehicle, vehicleData.DualFuelVehicle),
new XElement(_mrf + "HEVArchitecture", vehicleData.ArchitectureID.GetLabel()),
new XElement(_mrf + "OffVehicleChargingCapability", vehicleData.OvcHev),
vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ToXMLFormat(0)) : null,
vehicleData.OvcHev ? new XElement(_mrf + "OffVehicleChargingMaxPower", vehicleData.MaxChargingPower.ValueAsUnit("kW", 1)) : null,
};
result.Add(_mrfFactory.GetHEVADASType().GetXmlType(inputData.JobInputData.Vehicle.ADAS));
result.Add(_mrfFactory.GetBoostingLimitationsType().GetElement(inputData.JobInputData.Vehicle));
......
......@@ -11,6 +11,7 @@ using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.Reader.ComponentData;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Battery;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components
{
......@@ -35,8 +36,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(_mrf + XMLNames.Component_CertificationNumber, battery.CertificationNumber),
new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, battery.DigestValue?.DigestValue ?? ""),
new XElement(_mrf + XMLNames.BusAux_ElectricSystem_NominalVoltage, BatterySOCReader.Create(battery.VoltageCurve).Lookup(0.5).ToXMLFormat(0)),
new XElement(_mrf + "TotalStorageCapacity", battery.Capacity.AsAmpHour.ToXMLFormat(0)),
new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().AsAmpHour),
new XElement(_mrf + "TotalStorageCapacity", battery.TotalStorageCapacity().ValueAsUnit("kWh", 0)),
new XElement(_mrf + "TotalUsableCapacityInSimulation", battery.TotalUsableCapacityInSimulation().ValueAsUnit("kWh"), 0),
new XElement(_mrf + XMLNames.Component_CertificationMethod, battery.CertificationMethod.ToXMLFormat())
)
);
......
......@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter
{
......@@ -23,8 +24,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
var maxEngineTorque = inputData.JobInputData.Vehicle.Components.EngineInputData.MaxTorqueDeclared;
foreach (var torqueLimitInputData in inputData.JobInputData.Vehicle.TorqueLimits) {
torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit", new XAttribute("Gear", torqueLimitInputData.Gear), ((torqueLimitInputData.MaxTorque/maxEngineTorque)*100).ToXMLFormat(0)));
var value = (torqueLimitInputData.MaxTorque / maxEngineTorque).Value();
torqueLimitsElement.Add(new XElement(_mrf + "EngineTorqueLimit",
new XAttribute("Gear", torqueLimitInputData.Gear), value.ValueAsUnit("%", 0)
));
}
return torqueLimitsElement;
......
......@@ -24,8 +24,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
foreach (DataRow row in boostingLimitations.Rows)
{
boostingLimitationsXElement.Add(new XElement(_v24 + XMLNames.BoostingLimitation_Entry,
new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque]),
new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed])));
new XAttribute(XMLNames.BoostingLimitation_RotationalSpeed, row[XMLNames.BoostingLimitation_RotationalSpeed]),
new XAttribute(XMLNames.BoostingLimitation_BoostingTorque, row[XMLNames.BoostingLimitation_BoostingTorque])
));
}
return boostingLimitationsXElement;
......
......@@ -71,15 +71,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
foreach (var voltageLevel in voltageLevels) {
var entry = new XElement(_vif + XMLNames.ElectricMachine_VoltageLevel,
certificationMethod == CertificationMethod.StandardValues
? null
: new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0)),
voltageLevels.Count > 1
? new XElement(_vif + XMLNames.VoltageLevel_Voltage, voltageLevel.VoltageLevel.ToXMLFormat(0))
: null,
new XElement(_vif + XMLNames.ElectricMachine_ContinuousTorque, voltageLevel.ContinuousTorque.ToXMLFormat(2)),
new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque, voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)),
new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque, voltageLevel.OverloadTorque.ToXMLFormat(2)),
new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque, voltageLevel.OverloadTestSpeed.ToXMLFormat(2)),
new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration, voltageLevel.OverloadTime.ToXMLFormat(2)),
GetMaxTorqueCurve(voltageLevel.FullLoadCurve)
new XElement(_vif + XMLNames.ElectricMachine_TestSpeedContinuousTorque,
voltageLevel.ContinuousTorqueSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadTorque,
voltageLevel.OverloadTorque.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_TestSpeedOverloadTorque,
voltageLevel.OverloadTestSpeed.ToXMLFormat(2)), new XElement(_vif + XMLNames.ElectricMachine_OverloadDuration,
voltageLevel.OverloadTime.ToXMLFormat(2)), GetMaxTorqueCurve(voltageLevel.FullLoadCurve)
);
result.Add(entry);
}
......
......@@ -36,36 +36,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
torque.CertificationNumber),
new XElement(_vif + XMLNames.Component_Date,
XmlConvert.ToString(torque.Date, XmlDateTimeSerializationMode.Utc)),
new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion),
GetCharacteristics(torque.TCData)
new XElement(_vif + XMLNames.Component_AppVersion, torque.AppVersion)
));
}
private XElement GetCharacteristics(DataTable tcData)
{
if(tcData == null)
return null;
var entries = new List<XElement>();
for (int r = 0; r < tcData.Rows.Count; r++) {
var speedRatio = tcData.Rows[r][TorqueConverterDataReader.Fields.SpeedRatio];
var torqueRatio = tcData.Rows[r][TorqueConverterDataReader.Fields.TorqueRatio];
var inputTorqueRef = tcData.Rows[r][TorqueConverterDataReader.Fields.CharacteristicTorque];
var xElement = new XElement(_vif + XMLNames.TorqueConverter_Characteristics_Entry,
new XAttribute(XMLNames.TorqueConverterData_SpeedRatio_Attr, speedRatio),
new XAttribute(XMLNames.TorqueConverterData_TorqueRatio_Attr, torqueRatio),
new XAttribute(XMLNames.TorqueConverterDataMapping_InputTorqueRef_Attr, inputTorqueRef));
entries.Add(xElement);
}
return new XElement(_vif + XMLNames.TorqueConverter_Characteristics,
entries.Select(x => x));
}
#endregion
}
}
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