From 4875543cb6a321cb84e4008fba356d2c920717c9 Mon Sep 17 00:00:00 2001 From: Harald Martini <harald.martini@student.tugraz.at> Date: Wed, 27 Apr 2022 14:05:16 +0200 Subject: [PATCH] added toXmlFormat to powertrain position implement vehicletype in mockvehicle inputdata --- .../VectoCommon/Models/PowertrainPosition.cs | 47 ++++++++++++++----- .../Utils/MockVehicleInputData.cs | 1 + 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs index ae6edc8132..d6bae6be6c 100644 --- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs +++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs @@ -2,11 +2,10 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Utils; -namespace TUGraz.VectoCommon.InputData -{ +namespace TUGraz.VectoCommon.InputData { public enum PowertrainPosition { - HybridPositionNotSet, // this has to be the first entry so that it is used as default for not initialized fields! + HybridPositionNotSet, // this has to be the first entrie so that it is used as default for not initialized fields! HybridP0, HybridP1, HybridP2, @@ -19,13 +18,12 @@ namespace TUGraz.VectoCommon.InputData BatteryElectricE4, BatteryElectricE3, BatteryElectricE2, - } public static class PowertrainPositionHelper { public const string HybridPrefix = "Hybrid"; - public const string BatteryElectricPrefix = "BatteryElectric"; + public const string BatteryElectriPrefix = "BatteryElectric"; public static PowertrainPosition Parse(string pos) { @@ -33,22 +31,22 @@ namespace TUGraz.VectoCommon.InputData return PowertrainPosition.GEN; } - if (pos.StartsWith("P", StringComparison.InvariantCultureIgnoreCase)) { + if (pos.StartsWith("P",StringComparison.InvariantCultureIgnoreCase)) { return (HybridPrefix + pos).Replace(".", "_").ParseEnum<PowertrainPosition>(); } if (pos.StartsWith("B", StringComparison.InvariantCultureIgnoreCase)) { - return (BatteryElectricPrefix + pos.Replace("B", "E")).ParseEnum<PowertrainPosition>(); + return (BatteryElectriPrefix + pos.Replace("B", "E")).ParseEnum<PowertrainPosition>(); } if (pos.StartsWith("E", StringComparison.InvariantCultureIgnoreCase)) { - return (BatteryElectricPrefix + pos).ParseEnum<PowertrainPosition>(); + return (BatteryElectriPrefix + pos).ParseEnum<PowertrainPosition>(); } throw new VectoException("invalid powertrain position {0}", pos); } public static string GetName(this PowertrainPosition pos) { - return pos.ToString().Replace(HybridPrefix, "").Replace(BatteryElectricPrefix, "").Replace("_", "."); + return pos.ToString().Replace(HybridPrefix, "").Replace(BatteryElectriPrefix, "").Replace("_", "."); } public static string GetLabel(this PowertrainPosition pos) @@ -64,10 +62,8 @@ namespace TUGraz.VectoCommon.InputData return pos.ToString().Replace(HybridPrefix, "").Replace("_", "."); case PowertrainPosition.GEN: return nameof(PowertrainPosition.GEN); - case PowertrainPosition.HybridPositionNotSet: - return "Position not set"; } - return pos.ToString().Replace(BatteryElectricPrefix, "").Replace("B", "E"); + return pos.ToString().Replace(BatteryElectriPrefix, "").Replace("B", "E"); } public static bool IsBatteryElectric(this PowertrainPosition pos) @@ -91,6 +87,33 @@ namespace TUGraz.VectoCommon.InputData } } + public static string ToXmlFormat(this PowertrainPosition pos) + { + switch (pos) { + case PowertrainPosition.HybridPositionNotSet: + throw new ArgumentException("Hybrid position not set"); + case PowertrainPosition.HybridP0: + case PowertrainPosition.HybridP1: + case PowertrainPosition.HybridP2: + case PowertrainPosition.HybridP2_5: + case PowertrainPosition.HybridP3: + case PowertrainPosition.HybridP4: + case PowertrainPosition.BatteryElectricE4: + case PowertrainPosition.BatteryElectricE3: + case PowertrainPosition.BatteryElectricE2: + return GetPositionWithoutPrefix(pos.ToString()); + case PowertrainPosition.GEN: + return "GEN"; + default: + throw new ArgumentOutOfRangeException(nameof(pos), pos, null); + } + } + + private static string GetPositionWithoutPrefix(string position) + { + return position.Replace(BatteryElectriPrefix, "").Replace("E", "").Replace(HybridPrefix, "").Replace("P", "") + .Replace("_", "."); + } public static bool IsSerialHybrid(this PowertrainPosition pos) { return IsBatteryElectric(pos); diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs index d5502a5023..632be8b00f 100644 --- a/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs +++ b/VectoCore/VectoCoreTest/Utils/MockVehicleInputData.cs @@ -117,5 +117,6 @@ namespace TUGraz.VectoCore.Tests.Utils public bool OvcHev { get; } public Watt MaxChargingPower { get; } + public VectoSimulationJobType VehicleType { get; } } } \ No newline at end of file -- GitLab