Skip to content

Commit 58de89c

Browse files
committed
Separate brake release from triple valve operation
Brake release depends on more conditions apart from triple valve state
1 parent f102d48 commit 58de89c

File tree

1 file changed

+10
-10
lines changed
  • Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/Brakes/MSTS

1 file changed

+10
-10
lines changed

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/Brakes/MSTS/AirSinglePipe.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -424,17 +424,8 @@ public override void Update(float elapsedClockSeconds)
424424
}
425425

426426
// triple valve set to release pressure in brake cylinder and EP valve set
427-
if (TripleValveState == ValveState.Release && HoldingValve == ValveState.Release)
427+
if (TripleValveState == ValveState.Release)
428428
{
429-
if (threshold < RetainerPressureThresholdPSI)
430-
threshold = RetainerPressureThresholdPSI;
431-
if (AutoCylPressurePSI > threshold)
432-
{
433-
AutoCylPressurePSI -= elapsedClockSeconds * ReleaseRatePSIpS;
434-
if (AutoCylPressurePSI < threshold)
435-
AutoCylPressurePSI = threshold;
436-
}
437-
438429
if ((Car as MSTSWagon).EmergencyReservoirPresent)
439430
{
440431
if (AuxResPressurePSI < EmergResPressurePSI && AuxResPressurePSI < BrakeLine1PressurePSI)
@@ -474,6 +465,15 @@ public override void Update(float elapsedClockSeconds)
474465
}
475466
}
476467

468+
// Handle brake release: reduce cylinder pressure if all triple valve, EP holding valve and retainers allow so
469+
float minCylPressurePSI = Math.Max(threshold, RetainerPressureThresholdPSI);
470+
if (TripleValveState == ValveState.Release && HoldingValve == ValveState.Release && AutoCylPressurePSI > minCylPressurePSI)
471+
{
472+
AutoCylPressurePSI -= elapsedClockSeconds * ReleaseRatePSIpS;
473+
if (AutoCylPressurePSI < minCylPressurePSI)
474+
AutoCylPressurePSI = minCylPressurePSI;
475+
}
476+
477477
// Charge Auxiliary reservoir for MRP
478478
if (TwoPipes
479479
&& (Car as MSTSWagon).DistributorPresent

0 commit comments

Comments
 (0)