From 3bb58ca08c0a003021196f638a9d640e033360d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Sat, 10 Oct 2020 01:25:47 +0200 Subject: [PATCH] Optional SpeedCtrl shutoff when pneumatic braking is active --- McZapkie/Mover.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 4b417974..ec8a91fc 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -2162,7 +2162,7 @@ bool TMoverParameters::IncMainCtrl(int CtrlSpeed) else { ++MainCtrlPos; OK = true; - if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag == 1) && (MainCtrlActualPos != MainCtrlPos)) + if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag & 1 == 1) && (MainCtrlActualPos != MainCtrlPos)) { DecScndCtrl(2); SpeedCtrlUnit.IsActive = false; @@ -2331,7 +2331,7 @@ bool TMoverParameters::DecMainCtrl(int CtrlSpeed) { MainCtrlPos--; OK = true; - if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag == 1) && (MainCtrlActualPos != MainCtrlPos)) { + if ((EIMCtrlType == 0) && (SpeedCtrlAutoTurnOffFlag & 1 == 1) && (MainCtrlActualPos != MainCtrlPos)) { DecScndCtrl(2); SpeedCtrlUnit.IsActive = false; } @@ -2495,7 +2495,7 @@ bool TMoverParameters::IncScndCtrl(int CtrlSpeed) if ((OK) && (EngineType == TEngineType::ElectricInductionMotor) && (ScndCtrlPosNo == 1) && (MainCtrlPos>0)) { SpeedCtrlValue = Vel; - if ((EIMCtrlType == 0)&&(SpeedCtrlAutoTurnOffFlag == 1)) + if ((EIMCtrlType == 0)&&(SpeedCtrlAutoTurnOffFlag & 1 == 1)) { MainCtrlActualPos = MainCtrlPos; } @@ -7139,6 +7139,11 @@ void TMoverParameters::CheckSpeedCtrl(double dt) else eimicSpeedCtrl = clamp(0.5 * (SpeedCtrlValue * 2 - Vel), -1.0, 1.0); } + if (((SpeedCtrlAutoTurnOffFlag & 2) == 2) && (Hamulec->GetEDBCP() > 0.25)) + { + DecScndCtrl(2); + SpeedCtrlUnit.IsActive = false; + } } else { eimicSpeedCtrl = 1;