Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit f52b8dd5 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge branch 'bugfix/VECTO-1576-iepc-implementation' of...

Merge branch 'bugfix/VECTO-1576-iepc-implementation' of https://citnet.tech.ec.europa.eu/CITnet/stash/scm/vecto/mq_vecto-dev into bugfix/VECTO-1576-iepc-implementation
parents b892b882 f6a05ddd
No related branches found
No related tags found
No related merge requests found
......@@ -29,28 +29,33 @@ namespace TUGraz.VectoCommon.InputData
public const string HybridPrefix = "Hybrid";
public const string BatteryElectricPrefix = "BatteryElectric";
public static PowertrainPosition Parse(string pos)
public static PowertrainPosition Parse(string prefix, string pos)
{
if (pos.Equals(nameof(PowertrainPosition.GEN))) {
return PowertrainPosition.GEN;
}
if (pos.StartsWith("P", StringComparison.InvariantCultureIgnoreCase)) {
return (HybridPrefix + pos).Replace(".", "_").ParseEnum<PowertrainPosition>();
if (pos.Equals(nameof(PowertrainPosition.IHPC), StringComparison.InvariantCultureIgnoreCase)) {
return PowertrainPosition.IHPC;
}
if (pos.StartsWith("B", StringComparison.InvariantCultureIgnoreCase)) {
return (BatteryElectricPrefix + pos.Replace("B", "E")).ParseEnum<PowertrainPosition>();
if (prefix.Equals("P", StringComparison.InvariantCultureIgnoreCase)) {
return (HybridPrefix + prefix + pos).Replace(".", "_").ParseEnum<PowertrainPosition>();
}
if (pos.StartsWith("E", StringComparison.InvariantCultureIgnoreCase)) {
return (BatteryElectricPrefix + pos).ParseEnum<PowertrainPosition>();
if (prefix.Equals("B", StringComparison.InvariantCultureIgnoreCase) || prefix.Equals("E", StringComparison.InvariantCultureIgnoreCase)) {
return (BatteryElectricPrefix + prefix + pos.Replace("B", "E")).ParseEnum<PowertrainPosition>();
}
throw new VectoException("invalid powertrain position {0}", pos);
}
if (pos.Equals(nameof(PowertrainPosition.IHPC), StringComparison.InvariantCultureIgnoreCase)) {
return PowertrainPosition.IHPC;
public static PowertrainPosition Parse(string pos)
{
if (pos.Length > 1 && pos[0].IsOneOf('B', 'P', 'E')) {
return Parse(pos.Substring(0, 1), pos.Substring(1));
}
throw new VectoException("invalid powertrain position {0}", pos);
return Parse("", pos);
}
public static string GetName(this PowertrainPosition pos)
......
......@@ -712,7 +712,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
foreach (XmlNode electricMachineNode in electricMachineNodes)
{
var powertrainPosition =
PowertrainPositionHelper.Parse(PowertrainPositionPrefix + GetString(XMLNames.ElectricMachine_Position, electricMachineNode));
PowertrainPositionHelper.Parse(PowertrainPositionPrefix, GetString(XMLNames.ElectricMachine_Position, electricMachineNode));
if (!motorTorqueLimits.ContainsKey(powertrainPosition))
motorTorqueLimits.Add(powertrainPosition, new List<Tuple<Volt, TableData>>());
......
......@@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
private List<ElectricMachineEntry<IElectricMotorDeclarationInputData>> GetEntries()
{
var machineEntry = new ElectricMachineEntry<IElectricMotorDeclarationInputData> {
Position = PowertrainPositionHelper.Parse(((AbstractXMLVehicleDataProviderV24)_vehicle).PowertrainPositionPrefix +
Position = PowertrainPositionHelper.Parse(((AbstractXMLVehicleDataProviderV24)_vehicle).PowertrainPositionPrefix,
GetString(XMLNames.ElectricMachine_PowertrainPosition)),
Count = XmlConvert.ToInt32(GetString(XMLNames.ElectricMachine_Count)),
ElectricMachine = ElectricMachineSystemReader.CreateElectricMachineSystem(GetNode(XMLNames.ElectricMachineSystem)),
......
......@@ -1567,6 +1567,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
case GearboxType.AMT:
switch (runData.JobType) {
case VectoSimulationJobType.ConventionalVehicle:
case VectoSimulationJobType.ParallelHybridVehicle:
runData.ShiftStrategy = AMTShiftStrategyOptimized.Name;
return new AMTShiftStrategyOptimized(container);
case VectoSimulationJobType.BatteryElectricVehicle:
......
......@@ -1900,6 +1900,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
})).ToDictionary(k => k.Item1 + 1, v => v.Item2),
Inertia = 0.SI<KilogramSquareMeter>(),
TractionInterruption = 1.SI<Second>(),
Type = GearboxType.AMT
};
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment