16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-19 02:09:17 +02:00

ReleaseParkingBySpringBrakeWhenDoorIsOpen for Impuls EMU

This commit is contained in:
Królik Uszasty
2020-11-09 21:33:18 +01:00
committed by tmj-fstate
parent 11ba7696a5
commit b0342c7447
2 changed files with 22 additions and 6 deletions

View File

@@ -3117,7 +3117,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|| ( MoverParameters->Doors.permit_needed
&& ( MoverParameters->Doors.instances[ side::left ].open_permit
|| MoverParameters->Doors.instances[ side::right ].open_permit ) ) };
//doorisopen &= !(MoverParameters->ReleaseParkingBySpringBrakeWhenDoorIsOpen && MoverParameters->SpringBrake.IsActive);
doorisopen &= !(MoverParameters->ReleaseParkingBySpringBrakeWhenDoorIsOpen && MoverParameters->SpringBrake.IsActive);
if ((MoverParameters->Vel < 0.5) && (eimic < 0 || doorisopen || MoverParameters->Hamulec->GetEDBCP()))
{
@@ -3144,7 +3144,7 @@ bool TDynamicObject::Update(double dt, double dt1)
{
Fzad = std::min(LBR * FmaxED, FfulED);
}
if (((MoverParameters->ShuntMode) && (eimic <= 0)) /*||
if (((MoverParameters->ShuntMode) && (eimic <= 0) || (doorisopen)) /*||
(MoverParameters->V * MoverParameters->DirAbsolute < -0.2)*/)
{
auto const sbd { ( ( MoverParameters->SpringBrake.IsActive && MoverParameters->ReleaseParkingBySpringBrake ) ? 0.0 : MoverParameters->StopBrakeDecc ) };

View File

@@ -7129,11 +7129,27 @@ 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 ) )
&& ( !SpringBrake.IsActive || !SpringBrakeCutsOffDrive )
&& ( !LockPipe ) };
eimic = clamp(eimic, -1.0, eimicpowerenabled ? 1.0 : 0.0);
auto const eimicdoorenabled {
(SpringBrake.IsActive && ReleaseParkingBySpringBrakeWhenDoorIsOpen)
};
double eimic_max = 0.0;
if ((Doors.instances[side::left].open_permit == false)
&& (Doors.instances[side::right].open_permit == false)) {
if (eimicpowerenabled) {
eimic_max = 1.0;
}
else {
eimic_max = 0.001;
}
}
else {
if (eimicdoorenabled) {
eimic_max = 0.001;
}
}
eimic = clamp(eimic, -1.0, eimicpowerenabled ? eimic_max : 0.0);
}
void TMoverParameters::CheckSpeedCtrl(double dt)
@@ -10226,7 +10242,7 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) {
extract_value( StopBrakeDecc, "SBD", line, "" );
extract_value( ReleaseParkingBySpringBrake, "ReleaseParkingBySpringBrake", line, "" );
extract_value(ReleaseParkingBySpringBrakeWhenDoorIsOpen, "ReleaseParkingBySpringBrakeWhenDoorIsOpen", line, "");
extract_value( ReleaseParkingBySpringBrakeWhenDoorIsOpen, "ReleaseParkingBySpringBrakeWhenDoorIsOpen", line, "" );
extract_value( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, "");
extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, "");