diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs new file mode 100644 index 0000000000000000000000000000000000000000..9acaae31c7a71b35810b720a86dd5962dc5c7b51 --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/Components/MRFIEPCType.cs @@ -0,0 +1,59 @@ +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.VectoCommon.Utils; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter.Components +{ + internal class MrfiepcSpecificationsTypeWriter : AbstractMrfXmlType, IXmlTypeWriter + { + public MrfiepcSpecificationsTypeWriter(IManufacturerReportFactory mrfFactory) : base(mrfFactory) { } + + #region Overrides of AbstractMrfXmlType + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var iepcData = inputData.JobInputData.Vehicle.Components.IEPC; + + + var iepcXElement = new XElement(_mrf + "IEPCSpecifications", + new XElement(_mrf + XMLNames.Component_Model, iepcData.Model), + new XElement(_mrf + XMLNames.Component_CertificationNumber, iepcData.CertificationNumber), + new XElement(_mrf + XMLNames.DI_Signature_Reference_DigestValue, iepcData.DigestValue?.DigestValue ?? ""), + new XElement(_mrf + XMLNames.Engine_RatedPower, iepcData.R85RatedPower.ToXMLFormat())); + //new XElement(_mrf + "MaxContinuousPower",(iepcData.ContinuousTorque*iepcData.ContinuousTorqueSpeed).ToXMLFormat()), + + var voltageLevels = new XElement(_mrf + "VoltageLevels"); + iepcXElement.Add(voltageLevels); + + foreach (var electricMotorVoltageLevel in iepcData.VoltageLevels) { + var voltageLevel = new XElement(_mrf + XMLNames.ElectricMachine_VoltageLevel, + new XAttribute("voltage", electricMotorVoltageLevel.VoltageLevel.ToXMLFormat(0)), + new XElement(_mrf + "MaxContinuousPower", + (electricMotorVoltageLevel.ContinuousTorque * electricMotorVoltageLevel.ContinuousTorqueSpeed) + .ToXMLFormat(0))); + + + voltageLevels.Add(voltageLevel); + } + + 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)), + new XElement(_mrf + XMLNames.IEPC_DifferentialIncluded, iepcData.DifferentialIncluded), + new XElement(_mrf + XMLNames.Component_CertificationMethod, iepcData.CertificationMethod) + ); + + + return iepcXElement; + } + + #endregion + } +} diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs new file mode 100644 index 0000000000000000000000000000000000000000..0754d15218f0ae7404fb5329d27b60dfd72bf7ef --- /dev/null +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/PrimaryComponents/VIFRetarderType.cs @@ -0,0 +1,43 @@ +using System.Xml; +using System.Xml.Linq; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter; + +namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationFile.VehicleInformationFile_0_1.Components +{ + public class VIFRetarderType : AbstractVIFXmlType, IXmlTypeWriter + { + public VIFRetarderType(IVIFReportFactory vifFactory) : base(vifFactory) { } + + #region Implementation of IXmlTypeWriter + + public XElement GetElement(IDeclarationInputDataProvider inputData) + { + var retarder = inputData.JobInputData.Vehicle.Components.RetarderInputData; + if (retarder == null || retarder.Type.IsOneOf(RetarderType.EngineRetarder, RetarderType.None, + RetarderType.LossesIncludedInTransmission)) + return null; + + return new XElement(_vif + XMLNames.Component_Retarder, + new XElement(_vif + XMLNames.ComponentDataWrapper, + new XAttribute(_xsi + XMLNames.XSIType, "RetarderDataVIFType"), + new XElement(_vif + XMLNames.Component_Manufacturer, retarder.Manufacturer), + new XElement(_vif + XMLNames.Component_Model, retarder.Model), + new XElement(_vif + XMLNames.Component_CertificationMethod, retarder.CertificationMethod.ToXMLFormat()), + retarder.CertificationMethod == CertificationMethod.StandardValues + ? null + : new XElement(_vif + XMLNames.Report_Component_CertificationNumber, + retarder.CertificationNumber), + new XElement(_vif + XMLNames.Component_Date, + XmlConvert.ToString(retarder.Date, XmlDateTimeSerializationMode.Utc)), + new XElement(_vif + XMLNames.Component_AppVersion, retarder.AppVersion), + new XElement(_vif + XMLNames.Vehicle_RetarderRatio, retarder.Ratio.ToXMLFormat(3)) + )); + } + + #endregion + } +} \ No newline at end of file