Optional SpeedCtrl shutoff when pneumatic braking is active

This commit is contained in:
Królik Uszasty
2020-10-10 01:25:47 +02:00
committed by tmj-fstate
parent 39eaa53625
commit 81d4a84d00

View File

@@ -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;