diff --git a/VECTO/Input Files/VectoJob.vb b/VECTO/Input Files/VectoJob.vb index 69c8d1520097d1390d39db9985b7f0ca46aea8ef..7efc024c87b30476cec2dd3bd22ab12ebac42f33 100644 --- a/VECTO/Input Files/VectoJob.vb +++ b/VECTO/Input Files/VectoJob.vb @@ -231,8 +231,8 @@ Public Class VectoJob Return New StartStopInputData With { .Enabled = _startStop, .MaxSpeed = StartStopMaxSpeed.KMPHtoMeterPerSecond(), - .MinTime = StartStopTime.SI (Of Second)(), - .Delay = StartStopDelay.SI (Of Second)() + .MinTime = StartStopTime.SI(Of Second)(), + .Delay = StartStopDelay.SI(Of Second)() } End Get End Property diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index a34ee73f7718359c840c050fa634478ebd756506..fa19858e24c4955f4a00f9e4080e6dcea0484828 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -519,6 +519,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl operatingPoint.Acceleration, gradient); } }). + Case<ResponseOverload>(r => { + if (DataBus.GearboxType.AutomaticTransmission()) { + // overload may happen because of gearshift between search and actual request, search again + DataBus.BrakePower = 0.SI<Watt>(); + operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient, + operatingPoint.Acceleration, response); + DriverAcceleration = operatingPoint.Acceleration; + retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval, + operatingPoint.Acceleration, gradient); + } else { + throw new UnexpectedResponseException( + "DrivingAction Brake: request failed after braking power was found.", r); + } + }). Default( r => { throw new UnexpectedResponseException(