From 7febfae37f22273a28009f74d9b86b9d93084197 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Wed, 27 Apr 2022 10:00:48 +0200 Subject: [PATCH] PowertrainBuilder and GUI: Removed P0 in Dropdown and throw exception if P0 is defined in file. --- VECTO/GUI/VehicleForm.vb | 3 ++- VectoCommon/VectoCommon/Models/PowertrainPosition.cs | 12 +++++++++--- .../VectoCore/Models/Simulation/Data/VectoRunData.cs | 4 ++++ .../Models/Simulation/Impl/PowertrainBuilder.cs | 5 ++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb index 2b0f976321..6711527776 100644 --- a/VECTO/GUI/VehicleForm.vb +++ b/VECTO/GUI/VehicleForm.vb @@ -122,7 +122,8 @@ Public Class VehicleForm _changed = False cbEmPos.DataSource = EnumHelper.GetKeyValuePairs(Of PowertrainPosition)(Function(t) t.GetLabel(), - Function(x) x <> PowertrainPosition.GEN) + Function(x) x <> PowertrainPosition.GEN _ + AndAlso x <> PowertrainPosition.HybridP0) NewVehicle() End Sub diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs index ae6edc8132..c06a09c8f1 100644 --- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs +++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs @@ -72,14 +72,20 @@ namespace TUGraz.VectoCommon.InputData public static bool IsBatteryElectric(this PowertrainPosition pos) { - return pos == PowertrainPosition.BatteryElectricE2 || pos == PowertrainPosition.BatteryElectricE3 || - pos == PowertrainPosition.BatteryElectricE4; + switch (pos) { + case PowertrainPosition.BatteryElectricE2: + case PowertrainPosition.BatteryElectricE3: + case PowertrainPosition.BatteryElectricE4: + return true; + default: + return false; + } } public static bool IsParallelHybrid(this PowertrainPosition pos) { switch (pos) { - case PowertrainPosition.HybridP0: + //case PowertrainPosition.HybridP0: // special case, currently not considered in VECTO case PowertrainPosition.HybridP1: case PowertrainPosition.HybridP2: case PowertrainPosition.HybridP2_5: diff --git a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs index bb57cfc446..74e2855d1c 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -235,6 +235,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Data } } + if (runData.ElectricMachinesData?.Any(e => e.Item1 == PowertrainPosition.HybridP0) ?? false){ + return new ValidationResult("PowertrainPosition P0 is currently not supported."); + } + return ValidationResult.Success; } diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 96e80a328e..11de9cf78f 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -412,6 +412,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl if (data.ElectricMachinesData.Count != 1) { throw new VectoException("ParallelHybrid needs exactly one electric motor."); } + if (data.ElectricMachinesData.Any(e => e.Item1 == PowertrainPosition.HybridP0)) { + throw new VectoException("PowertrainPosition P0 is currently not supported."); + } var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data }; var es = ConnectREESS(data, container); @@ -665,7 +668,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl if (data.ElectricMachinesData.Count != 1) { throw new VectoException("Battery electric vehicle needs exactly one electric motor."); } - + var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data }; var es = ConnectREESS(data, container); -- GitLab