From e01f05f57cb573e7e83597a1decc6b21fd5881ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Sun, 8 Jul 2018 15:53:48 +0200 Subject: [PATCH] Emergency loop for EIM EMUs: emergency brake uses PN+EP --- DynObj.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DynObj.cpp b/DynObj.cpp index 74d93abc..5c1a51a0 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -3067,6 +3067,9 @@ bool TDynamicObject::Update(double dt, double dt1) (MoverParameters->LocalBrakeRatio() < 0.01); } auto Fzad = amax * MoverParameters->LocalBrakeRatio() * masa; + if ((MoverParameters->BrakeCtrlPos == MoverParameters->Handle->GetPos(bh_EB)) + && (MoverParameters->eimc[eimc_p_abed] < 0.001)) + Fzad = amax * masa; //pętla bezpieczeństwa - pełne służbowe if ((MoverParameters->ScndS) && (MoverParameters->Vel > MoverParameters->eimc[eimc_p_Vh1]) && (FmaxED > 0)) { @@ -3097,6 +3100,9 @@ bool TDynamicObject::Update(double dt, double dt1) && ( MoverParameters->BrakeOpModeFlag & bom_MED ) ) ) { FzadED = std::min( Fzad, FmaxED ); } + if ((MoverParameters->BrakeCtrlPos == MoverParameters->Handle->GetPos(bh_EB)) + && (MoverParameters->eimc[eimc_p_abed] < 0.001)) + FzadED = 0; //pętla bezpieczeństwa - bez ED auto const FzadPN = Fzad - FrED; //np = 0; // BUG: likely memory leak, allocation per inner loop, deleted only once outside