From 8f761677caa3e79a669148d2d0e615fbafb8bcf2 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Mon, 24 Jan 2022 16:59:10 +0100 Subject: [PATCH] HybridStrategy.DoSelectBestOption: When Braking search with MaxBY MechanicalAssistPower instead of MinBy --- .../Strategies/HybridStrategy.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index 1ee19809d0..0fad01a6d2 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -1598,13 +1598,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies if (filtered3.Length == 0) { filtered3 = filtered2; } - var filteredCurrentGear = filtered3.Where(x => x.Gear.Equals(currentGear)).ToArray(); if (filteredCurrentGear.Length > 0) { - best = filteredCurrentGear.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) { + best = filteredCurrentGear.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + } else { + best = filteredCurrentGear.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + } return best; } - best = filtered3.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + + if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) { + best = filtered3.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + } else { + best = filtered3.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>())); + } if (best != null) { return best; } -- GitLab