From 26b077653d930fa264295fac3b1ab3ecc58dff07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Sat, 10 Oct 2020 10:43:06 +0200 Subject: [PATCH] Emergency braking can cut off handle --- McZapkie/MOVER.h | 1 + McZapkie/Mover.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index 3c331363..26269ed9 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1120,6 +1120,7 @@ public: double LockPipeOn = -1.0; double LockPipeOff = -1.0; double HandleUnlock = -3.0; + bool EmergencyCutsOffHandle = false; int CompressorListPosNo = 0; int CompressorListDefPos = 1; bool CompressorListWrap = false; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index ec8a91fc..c0ab9c4b 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -4223,7 +4223,8 @@ void TMoverParameters::UpdatePipePressure(double dt) dpLocalValve = LocHandle->GetPF(LocalBrakePosAEIM, Hamulec->GetBCP(), ScndPipePress, dt, 0); LockPipe = PipePress < (LockPipe ? LockPipeOff : LockPipeOn); - bool lock_new = (LockPipe && !UnlockPipe && (BrakeCtrlPosR > HandleUnlock)); //new simple codition based on .fiz + bool lock_new = (LockPipe && !UnlockPipe && (BrakeCtrlPosR > HandleUnlock)) + || ((EmergencyCutsOffHandle) && (EmergencyValveFlow > 0)); //new simple codition based on .fiz bool lock_old = ((BrakeHandle == TBrakeHandle::FV4a) //old complex condition based on assumptions && ((PipePress < 2.75) && ((Hamulec->GetStatus() & b_rls) == 0)) @@ -4261,6 +4262,10 @@ void TMoverParameters::UpdatePipePressure(double dt) dpMainValve = Handle->GetPF( 0, PipePress, temp, dt, EqvtPipePress ); } } + else if (BrakeCtrlPos == Handle->GetPos(bh_EB)) + { + dpMainValve = Handle->GetPF(BrakeCtrlPosR, PipePress, temp, dt, EqvtPipePress); + } if (dpMainValve < 0) // && (PipePressureVal > 0.01) //50 if (Compressor > ScndPipePress) @@ -9742,6 +9747,7 @@ void TMoverParameters::LoadFIZ_Brake( std::string const &line ) { extract_value( LockPipeOn, "LPOn", line, "-1"); extract_value( LockPipeOff, "LPOff", line, "-1"); extract_value( HandleUnlock, "HandlePipeUnlockPos", line, "-3"); + extract_value( EmergencyCutsOffHandle, "EmergencyCutsOffHandle", line, ""); { std::map compressorpowers{ { "Main", 0 },