mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 13:59:19 +02:00
ReleaseParkingBySpringBrakeWhenDoorIsOpen for Impuls EMU
This commit is contained in:
@@ -3157,7 +3157,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
|| ( MoverParameters->Doors.permit_needed
|
|| ( MoverParameters->Doors.permit_needed
|
||||||
&& ( MoverParameters->Doors.instances[ side::left ].open_permit
|
&& ( MoverParameters->Doors.instances[ side::left ].open_permit
|
||||||
|| MoverParameters->Doors.instances[ side::right ].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()))
|
if ((MoverParameters->Vel < 0.5) && (eimic < 0 || doorisopen || MoverParameters->Hamulec->GetEDBCP()))
|
||||||
{
|
{
|
||||||
@@ -3184,7 +3184,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|
|||||||
{
|
{
|
||||||
Fzad = std::min(LBR * FmaxED, FfulED);
|
Fzad = std::min(LBR * FmaxED, FfulED);
|
||||||
}
|
}
|
||||||
if (((MoverParameters->ShuntMode) && (eimic <= 0)) /*||
|
if (((MoverParameters->ShuntMode) && (eimic <= 0) || (doorisopen)) /*||
|
||||||
(MoverParameters->V * MoverParameters->DirAbsolute < -0.2)*/)
|
(MoverParameters->V * MoverParameters->DirAbsolute < -0.2)*/)
|
||||||
{
|
{
|
||||||
auto const sbd { ( ( MoverParameters->SpringBrake.IsActive && MoverParameters->ReleaseParkingBySpringBrake ) ? 0.0 : MoverParameters->StopBrakeDecc ) };
|
auto const sbd { ( ( MoverParameters->SpringBrake.IsActive && MoverParameters->ReleaseParkingBySpringBrake ) ? 0.0 : MoverParameters->StopBrakeDecc ) };
|
||||||
|
|||||||
@@ -7115,11 +7115,27 @@ void TMoverParameters::CheckEIMIC(double dt)
|
|||||||
|
|
||||||
auto const eimicpowerenabled {
|
auto const eimicpowerenabled {
|
||||||
( ( true == Mains ) || ( Power == 0.0 ) )
|
( ( true == Mains ) || ( Power == 0.0 ) )
|
||||||
&& ( ( Doors.instances[ side::left ].open_permit == false )
|
|
||||||
&& ( Doors.instances[ side::right ].open_permit == false ) )
|
|
||||||
&& ( !SpringBrake.IsActive || !SpringBrakeCutsOffDrive )
|
&& ( !SpringBrake.IsActive || !SpringBrakeCutsOffDrive )
|
||||||
&& ( !LockPipe ) };
|
&& ( !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)
|
void TMoverParameters::CheckSpeedCtrl(double dt)
|
||||||
@@ -10212,7 +10228,7 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) {
|
|||||||
|
|
||||||
extract_value( StopBrakeDecc, "SBD", line, "" );
|
extract_value( StopBrakeDecc, "SBD", line, "" );
|
||||||
extract_value( ReleaseParkingBySpringBrake, "ReleaseParkingBySpringBrake", line, "" );
|
extract_value( ReleaseParkingBySpringBrake, "ReleaseParkingBySpringBrake", line, "" );
|
||||||
extract_value(ReleaseParkingBySpringBrakeWhenDoorIsOpen, "ReleaseParkingBySpringBrakeWhenDoorIsOpen", line, "");
|
extract_value( ReleaseParkingBySpringBrakeWhenDoorIsOpen, "ReleaseParkingBySpringBrakeWhenDoorIsOpen", line, "" );
|
||||||
extract_value( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, "");
|
extract_value( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, "");
|
||||||
extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, "");
|
extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, "");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user