diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IFuelProperties.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IFuelProperties.cs index f9f89dbf6211226166e9f97a305224323d7cb23b..f51989a36a7fd61e6aa3d2b9433f52befa091d1e 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IFuelProperties.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IFuelProperties.cs @@ -18,6 +18,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { JoulePerKilogramm LowerHeatingValueVectoEngine { get; } double HeatingValueCorrection { get; } + double CO2PerFuelWeightVTP { get; } string GetLabel(); } diff --git a/VectoCore/VectoCore/Models/Declaration/FuelData.cs b/VectoCore/VectoCore/Models/Declaration/FuelData.cs index 6f4b775a3599cee96f715334fba4f4e70f13515d..596b7b20ef4fa26f789bd8a1fd9acaa218dd0f62 100644 --- a/VectoCore/VectoCore/Models/Declaration/FuelData.cs +++ b/VectoCore/VectoCore/Models/Declaration/FuelData.cs @@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.Models.Declaration protected override string ErrorMessage => "FuelType {0} {1} not found!"; - public Entry Lookup(FuelType fuelType, TankSystem? tankSystem = null) + public IFuelProperties Lookup(FuelType fuelType, TankSystem? tankSystem = null) { var entries = _data.FindAll(x => x.FuelType == fuelType); if (entries.Count == 0) { @@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Models.Declaration return entries.First(); } - public static Entry Diesel => Instance().Lookup(FuelType.DieselCI); + public static IFuelProperties Diesel => Instance().Lookup(FuelType.DieselCI); protected override void ParseData(DataTable table) { diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index cbd333fc6d57ae6b96f95f00f6713589b593dc03..073e70157feb14948ca9ce547b83770ca663cf93 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -192,22 +192,23 @@ namespace TUGraz.VectoCore.OutputData.XML //Fuels - result.FuelData = specific.FuelData; + result.FuelData = primary.EnergyConsumption.Keys.Select(x => + DeclarationData.FuelData.Lookup(x, specific.VectoRunData.VehicleData.InputData.TankSystem)).ToList(); //specific.FuelData; var co2Sum = 0.SI<Kilogram>(); - foreach (var fuel in generic.FuelData.Select(f => f.FuelType)) - { + var fuel = specific.FuelData.First(); + var fuelFactor = CalculateFactor(combinedResults, r => r.FuelConsumptionFinal(fuel.FuelType).TotalFuelConsumptionCorrected); - var fuelFactor = CalculateFactor(combinedResults, r => r.FuelConsumptionFinal(fuel).TotalFuelConsumptionCorrected); - var energyDemand = - fuelFactor * (primary.EnergyConsumption[fuel] * specific.Distance); + foreach (var entry in primary.EnergyConsumption)//generic.FuelData.Select(f => f.FuelType)) + { + var energyDemand = fuelFactor * (entry.Value * specific.Distance); var fuelConsumption = new CompletedBusFuelConsumption() { - Fuel = specific.FuelData.Single(f => f.FuelType == fuel), + Fuel = DeclarationData.FuelData.Lookup(entry.Key, specific.VectoRunData.VehicleData.InputData.TankSystem), // specific.FuelData.Single(f => f.FuelType == fuel), EnergyDemand = energyDemand, }; co2Sum += fuelConsumption.TotalFuelConsumptionCorrected * fuelConsumption.Fuel.CO2PerFuelWeight; - result.CorrectedFinalFuelConsumption.Add(fuel, fuelConsumption); + result.CorrectedFinalFuelConsumption.Add(entry.Key, fuelConsumption); } result.CO2Total = co2Sum; diff --git a/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMHeatingPostProcessingCorrection.cs b/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMHeatingPostProcessingCorrection.cs index 3199cc0c58175ff74719cf3f4fae2f63ab1f7d49..24e44d9d577c956593587e199aa9d3979f234ddf 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMHeatingPostProcessingCorrection.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/BusAux/SSMHeatingPostProcessingCorrection.cs @@ -58,7 +58,7 @@ public class SSMHeatingPostProcessingCorrection "2500,0,3800\n" + "2500,1000,32000\n"; - protected static readonly FuelData.Entry Fuel = FuelData.Diesel; + protected static readonly IFuelProperties Fuel = FuelData.Diesel; diff --git a/VectoCore/VectoCoreTest/Reports/ModDataPostProcessingBus.cs b/VectoCore/VectoCoreTest/Reports/ModDataPostProcessingBus.cs index 1e42a81079c0f416d50d0f8615bdbc220e1f72af..da48ab574026e9c2ad5a1a5ebdf08d19a39c1e96 100644 --- a/VectoCore/VectoCoreTest/Reports/ModDataPostProcessingBus.cs +++ b/VectoCore/VectoCoreTest/Reports/ModDataPostProcessingBus.cs @@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Tests.Reports "2500,0,3800\n" + "2500,1000,32000\n"; - protected static readonly FuelData.Entry Fuel = FuelData.Diesel; + protected static readonly IFuelProperties Fuel = FuelData.Diesel; [OneTimeSetUp] public void RunBeforeAnyTests() diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs index b3a10897b0f185244b173466aad120ec828bab1c..83f41f2607672612c1b19d765dbe25d1e9e041f5 100644 --- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs @@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.Utils IList<IFuelProperties> IModalDataContainer.FuelData => FuelColumns.Keys.ToList(); - public FuelData.Entry FuelData => VectoCore.Models.Declaration.FuelData.Diesel; + public IFuelProperties FuelData => VectoCore.Models.Declaration.FuelData.Diesel; public VectoRun.Status RunStatus => VectoRun.Status.Success;