From 3e291f0988beecfb26c99628505cd7ecfd16950e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Tue, 10 Sep 2019 19:52:36 +0200 Subject: [PATCH] Spring brake disables propulsion in EIM --- Driver.cpp | 5 +++++ McZapkie/Mover.cpp | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Driver.cpp b/Driver.cpp index 4c5e361e..dc0ee971 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -1784,6 +1784,7 @@ void TController::Activation() auto const localbrakelevel { mvOccupied->LocalBrakePosA }; ZeroSpeed(); ZeroDirection(); + mvOccupied->SpringBrakeActivate(true); if (TestFlag(d->MoverParameters->Couplers[iDirectionOrder < 0 ? 1 : 0].CouplingFlag, ctrain_controll)) { mvControlling->MainSwitch( false); // dezaktywacja czuwaka, jeśli przejście do innego członu mvOccupied->DecLocalBrakeLevel(LocalBrakePosNo); // zwolnienie hamulca w opuszczanym pojeździe @@ -2684,6 +2685,7 @@ bool TController::ReleaseEngine() { } // gasimy światła Lights( 0, 0 ); + mvOccupied->SpringBrakeActivate(true); mvOccupied->BatterySwitch( false ); } } @@ -2991,6 +2993,9 @@ bool TController::IncSpeed() // zamykanie drzwi - tutaj wykonuje tylko AI (zmienia fActionTime) Doors( false ); } + if (mvOccupied->SpringBrake.IsActive && mvOccupied->SpringBrake.Activate) { + mvOccupied->SpringBrakeActivate(false); + } if( fActionTime < 0.0 ) { // gdy jest nakaz poczekać z jazdą, to nie ruszać return false; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index b6badfee..9c4f785b 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -6447,7 +6447,8 @@ void TMoverParameters::CheckEIMIC(double dt) auto const eimicpowerenabled { ( ( true == Mains ) || ( Power == 0.0 ) ) && ( ( Doors.instances[ side::left ].open_permit == false ) - && ( Doors.instances[ side::right ].open_permit == false ) ) }; + && ( Doors.instances[ side::right ].open_permit == false ) ) + && ( !SpringBrake.IsActive ) }; eimic = clamp(eimic, -1.0, eimicpowerenabled ? 1.0 : 0.0); }