diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultWriter.cs index 5d446df67cadf4562d94143d97021cc76fcbabf9..b009c93010c90cefaa60d8d23fbd591604fc21b4 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/ResultWriter.cs @@ -1,6 +1,8 @@ using System; using System.Linq; using System.Xml.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common @@ -19,6 +21,24 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common } protected XNamespace TNS { get; } + + + protected XElement GetPrimaryBusSubGroupElement(IResultEntry entry) + { + if (entry.VehicleClass.IsBus()) + { + //busSubGroup + var primarySubGroup = entry.VehicleClass; + if (!primarySubGroup.IsPrimaryBus()) + { + throw new VectoException($"Expected Primary Bus but was {primarySubGroup}"); + } + + return new XElement(TNS + XMLNames.Report_Results_PrimaryVehicleSubgroup, primarySubGroup.ToXML()); + } + + return null; + } } @@ -30,11 +50,15 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common public override XElement GetElement(IResultEntry entry) { - return new XElement(TNS + XMLNames.Report_Result_Result, + + + + return new XElement(TNS + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, XMLNames.Report_Results_Status_Success_Val), new XAttribute(xsi + XMLNames.XSIType, ResultXMLType), _factory.GetSuccessMissionWriter(_factory, TNS).GetElement(entry), SimulationParameterWriter.GetElement(entry), + GetPrimaryBusSubGroupElement(entry), ResultTotalWriter.GetElement(entry) ); } @@ -212,11 +236,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common public override XElement GetElement(IOVCResultEntry entry) { + var primarySubGroup = entry.ChargeDepletingResult.VehicleClass; + return new XElement(TNS + XMLNames.Report_Result_Result, new XAttribute(XMLNames.Report_Result_Status_Attr, XMLNames.Report_Results_Status_Success_Val), new XAttribute(xsi + XMLNames.XSIType, ResultXMLType), _factory.GetSuccessMissionWriter(_factory, TNS).GetElement(entry.ChargeDepletingResult), _factory.GetBusSimulationParameterWriter(_factory, TNS).GetElement(entry.ChargeDepletingResult), + GetPrimaryBusSubGroupElement(entry.ChargeSustainingResult), _factory.GetBusHEVOVCResultWriterChargeDepleting(_factory, TNS).GetElement(entry.ChargeDepletingResult), _factory.GetBusHEVOVCResultWriterChargeSustaining(_factory, TNS).GetElement(entry.ChargeSustainingResult), _factory.GetBusHEVOVCTotalWriter(_factory, TNS).GetElement(entry) diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index 4eb0d953a7cc1c6b470ad73502d69fa9133045d0..88325d6a6a5295a803b4857019233899dde6aa3a 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -177,7 +177,9 @@ namespace TUGraz.VectoCore.OutputData.XML result.Payload = specific.Payload; result.PassengerCount = specific.PassengerCount; result.VehicleClass = primary.VehicleGroup; - + result.WeightingFactor = specific.WeightingFactor; + result.FuelMode = specific.FuelMode; + result.LoadingType = specific.LoadingType; ///Factor for each fuel /// Factor for electric Energy Consumption @@ -248,11 +250,8 @@ namespace TUGraz.VectoCore.OutputData.XML { result.ZEV_FuelConsumption_AuxHtr = specific.ZEV_FuelConsumption_AuxHtr; var auxHeaterFuel = specific.AuxHeaterFuel; - result.AuxHeaterFuel = auxHeaterFuel; - result.FuelData.Add(auxHeaterFuel); - - result.ZEV_CO2 = result.ZEV_FuelConsumption_AuxHtr * auxHeaterFuel.CO2PerFuelWeight; + result.ZEV_CO2 = result.ZEV_FuelConsumption_AuxHtr * auxHeaterFuel.CO2PerFuelWeight; } @@ -284,13 +283,15 @@ namespace TUGraz.VectoCore.OutputData.XML throw new NotImplementedException(); } - public VectoRunData VectoRunData { get; } + public VectoRunData VectoRunData => throw new NotImplementedException(); public VectoRun.Status Status { get; set; } public OvcHevMode OVCMode { get; set; } public MissionType Mission { get; set; } - public LoadingType LoadingType { get; } - public int FuelMode { get; } - public IList<IFuelProperties> FuelData { get; set; } + public LoadingType LoadingType { get; set; } + + public int FuelMode { get; set; } + + public IList<IFuelProperties> FuelData { get; set; } public MeterPerSecond AverageSpeed { get; set; } public MeterPerSecond AverageDrivingSpeed { get; set; } public MeterPerSecond MaxSpeed { get; set; } @@ -322,7 +323,7 @@ namespace TUGraz.VectoCore.OutputData.XML public double? PassengerCount { get; set; } public VehicleClass VehicleClass { get; set; } public Watt MaxChargingPower { get; } - public double WeightingFactor { get; } + public double WeightingFactor { get; set; } public Meter ActualChargeDepletingRange { get; set; } public Meter EquivalentAllElectricRange { get; set; } public Meter ZeroCO2EmissionsRange { get; set; }