Delayed ED braking for ELF

This commit is contained in:
Królik Uszasty
2019-04-28 10:49:49 +02:00
committed by tmj-fstate
parent 819c183f91
commit fbe570950d
3 changed files with 9 additions and 2 deletions

View File

@@ -2783,6 +2783,8 @@ bool TDynamicObject::Update(double dt, double dt1)
auto eimic = Min0R(MoverParameters->eimic, MoverParameters->eimicSpeedCtrl);
MoverParameters->eimic_real = eimic;
if (MoverParameters->EIMCtrlType == 2 && MoverParameters->MainCtrlPos == 0)
eimic = -1.0;
MoverParameters->SendCtrlToNext("EIMIC", Max0R(0, eimic), MoverParameters->CabNo);
auto LBR = Max0R(-eimic, 0);
auto eim_lb = (Mechanik->AIControllFlag || !MoverParameters->LocHandleTimeTraxx ? 0 : MoverParameters->eim_localbrake);
@@ -2892,6 +2894,10 @@ bool TDynamicObject::Update(double dt, double dt1)
&& ( MoverParameters->BrakeOpModeFlag & bom_MED ) ) ) {
FzadED = std::min( Fzad, FmaxED );
}
if (MoverParameters->EIMCtrlType == 2 && MoverParameters->MainCtrlPos < 2 && MoverParameters->eimic > -0.999)
{
FzadED = std::min(FzadED, MED_oldFED);
}
if ((MoverParameters->BrakeCtrlPos == MoverParameters->Handle->GetPos(bh_EB))
&& (MoverParameters->eimc[eimc_p_abed] < 0.001))
FzadED = 0; //pętla bezpieczeństwa - bez ED
@@ -3069,6 +3075,8 @@ bool TDynamicObject::Update(double dt, double dt1)
delete[] FzED;
delete[] FzEP;
delete[] FmaxEP;
MED_oldFED = FzadED;
}
Mechanik->UpdateSituation(dt1); // przebłyski świadomości AI

View File

@@ -658,6 +658,7 @@ private:
double MEDLogTime = 0;
double MEDLogInactiveTime = 0;
int MEDLogCount = 0;
double MED_oldFED = 0;
// vehicle shaking calculations
// TBD, TODO: make an object out of it

View File

@@ -6068,8 +6068,6 @@ void TMoverParameters::CheckEIMIC(double dt)
switch (MainCtrlPos)
{
case 0:
eimic = -1.0;
break;
case 1:
eimic -= clamp(1.0 + eimic, 0.0, dt*0.15); //odejmuj do -1
if (eimic > 0) eimic = 0;