mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 12:49:18 +02:00
More fluent dynamic brake test, fix for eimp_pnX_cp
This commit is contained in:
27
Driver.cpp
27
Driver.cpp
@@ -6507,32 +6507,47 @@ TController::UpdateSituation(double dt) {
|
|||||||
&& (vel > std::min(TrainParams.TTVmax - 2.0, 58.0)))
|
&& (vel > std::min(TrainParams.TTVmax - 2.0, 58.0)))
|
||||||
{
|
{
|
||||||
DynamicBrakeTest = 1;
|
DynamicBrakeTest = 1;
|
||||||
DBT_VelocityBrake = vel;
|
|
||||||
DBT_VelocityRelease = vel - 8.0;
|
|
||||||
DBT_BrakingTime = ElapsedTime;
|
DBT_BrakingTime = ElapsedTime;
|
||||||
}
|
}
|
||||||
switch (DynamicBrakeTest)
|
switch (DynamicBrakeTest)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
AccDesired = fAccThreshold * 1.01;
|
AccDesired = -0.06;
|
||||||
|
if (ElapsedTime - DBT_BrakingTime > 1)
|
||||||
|
{
|
||||||
ForcePNBrake = true;
|
ForcePNBrake = true;
|
||||||
mvOccupied->EpFuseSwitch(false);
|
mvOccupied->EpFuseSwitch(false);
|
||||||
|
DynamicBrakeTest = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (ElapsedTime - DBT_BrakingTime > 2)
|
||||||
|
{
|
||||||
|
DBT_BrakingTime = ElapsedTime;
|
||||||
|
DBT_VelocityBrake = vel;
|
||||||
|
DBT_VelocityRelease = vel - 8.0;
|
||||||
|
DynamicBrakeTest = 3;
|
||||||
|
}
|
||||||
|
AccDesired = -0.06;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
AccDesired = clamp(-AbsAccS, fAccThreshold * 1.01, fAccThreshold * 1.21);
|
||||||
if (vel <= DBT_VelocityRelease)
|
if (vel <= DBT_VelocityRelease)
|
||||||
{
|
{
|
||||||
DynamicBrakeTest = 2;
|
DynamicBrakeTest = 4;
|
||||||
DBT_BrakingTime = ElapsedTime - DBT_BrakingTime;
|
DBT_BrakingTime = ElapsedTime - DBT_BrakingTime;
|
||||||
DBT_MidPointAcc = AbsAccS;
|
DBT_MidPointAcc = AbsAccS;
|
||||||
DBT_ReleasingTime = ElapsedTime;
|
DBT_ReleasingTime = ElapsedTime;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 4:
|
||||||
if (fReady < 0.5)
|
if (fReady < 0.5)
|
||||||
{
|
{
|
||||||
if (BrakeSystem == TBrakeSystem::ElectroPneumatic) {
|
if (BrakeSystem == TBrakeSystem::ElectroPneumatic) {
|
||||||
mvOccupied->EpFuseSwitch(true);
|
mvOccupied->EpFuseSwitch(true);
|
||||||
}
|
}
|
||||||
ForcePNBrake = false;
|
ForcePNBrake = false;
|
||||||
DynamicBrakeTest = 3;
|
DynamicBrakeTest = 5;
|
||||||
DBT_ReleasingTime = ElapsedTime - DBT_ReleasingTime;
|
DBT_ReleasingTime = ElapsedTime - DBT_ReleasingTime;
|
||||||
DBT_VelocityFinish = vel;
|
DBT_VelocityFinish = vel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6210,7 +6210,7 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
fPress[i][0] = p->MoverParameters->BrakePress;
|
fPress[i][0] = p->MoverParameters->BrakePress;
|
||||||
fPress[i][1] = p->MoverParameters->PipePress;
|
fPress[i][1] = p->MoverParameters->PipePress;
|
||||||
fPress[i][2] = p->MoverParameters->ScndPipePress;
|
fPress[i][2] = p->MoverParameters->ScndPipePress;
|
||||||
fPress[i][3] = p->MoverParameters->CntrlPipePress;
|
fPress[i][3] = p->MoverParameters->PantPress;
|
||||||
bBrakes[i][0] = p->MoverParameters->SpringBrake.IsActive;
|
bBrakes[i][0] = p->MoverParameters->SpringBrake.IsActive;
|
||||||
bBrakes[i][1] = p->MoverParameters->SpringBrake.ShuttOff;
|
bBrakes[i][1] = p->MoverParameters->SpringBrake.ShuttOff;
|
||||||
bDoors[i][1] = ( p->MoverParameters->Doors.instances[ side::left ].position > 0.f );
|
bDoors[i][1] = ( p->MoverParameters->Doors.instances[ side::left ].position > 0.f );
|
||||||
|
|||||||
Reference in New Issue
Block a user