From 773f8610f5ba7c0a2fb9ad3fb1d90eb56e395de7 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Mon, 29 Aug 2016 16:55:05 +0200 Subject: [PATCH] AxleGearLossMap and PTOLossMap: Changed Handling of empty values (no exception, instead return null value) --- .../InputData/FileIO/JSON/JSONGearboxData.cs | 6 ++++-- .../InputData/FileIO/JSON/JSONVehicleData.cs | 16 ++++++++-------- .../AbstractSimulationDataAdapter.cs | 13 ++++++------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs index d76f25bf73..489b863ca4 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs @@ -128,8 +128,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON if (!gears.Any()) { throw new VectoSimulationException("At least one Gear-Entry must be defined in Gearbox!"); } - return ReadTableData( - gears[0].GetEx<string>(JsonKeys.Gearbox_Gear_LossMapFile), "AxleGear"); + var lossMap = gears[0][JsonKeys.Gearbox_Gear_LossMapFile]; + if (lossMap != null) + return ReadTableData(gears[0][JsonKeys.Gearbox_Gear_LossMapFile].Value<string>(), "AxleGear", required: false); + return null; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 40f0975034..bb730e0a9c 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -187,9 +187,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON { get { - return Body.GetEx(JsonKeys.Vehicle_AngularGear) - .GetEx<string>(JsonKeys.Vehicle_AngularGear_Type) - .ParseEnum<AngularGearType>(); + return Body.GetEx(JsonKeys.Vehicle_AngularGear) + .GetEx<string>(JsonKeys.Vehicle_AngularGear_Type) + .ParseEnum<AngularGearType>(); } } @@ -205,7 +205,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON return ReadTableData( Body.GetEx(JsonKeys.Vehicle_AngularGear) .GetEx<string>(JsonKeys.Vehicle_AngularGear_LossMapFile), - "LossMap"); + "LossMap"); } } @@ -222,11 +222,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON { get { - try { - return Body.GetEx(JsonKeys.Vehicle_PTO).GetEx<string>(JsonKeys.Vehicle_PTO_Type); - } catch (Exception) { - return "None"; + var pto = Body[JsonKeys.Vehicle_PTO]; + if (pto != null) { + return pto[JsonKeys.Vehicle_PTO_Type].Value<string>(); } + return "None"; } } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs index d4bcd9f7b9..e59660f292 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs @@ -140,14 +140,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter internal AxleGearData CreateAxleGearData(IAxleGearInputData data, bool useEfficiencyFallback) { TransmissionLossMap axleLossMap; - try { + if (data.LossMap == null && useEfficiencyFallback) { + axleLossMap = TransmissionLossMapReader.Create(data.Efficiency, data.Ratio, "AxleGear"); + } else { axleLossMap = TransmissionLossMapReader.Create(data.LossMap, data.Ratio, "AxleGear"); - } catch (InvalidFileFormatException) { - if (useEfficiencyFallback) { - axleLossMap = TransmissionLossMapReader.Create(data.Efficiency, data.Ratio, "AxleGear"); - } else { - throw; - } + } + if (axleLossMap == null) { + throw new Exception("LossMap for AxleGear is missing."); } return new AxleGearData { -- GitLab