From f1eeecb8b62ed1971f4010505f2394515ad4e445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kr=C3=B3lik=20Uszasty?= Date: Sun, 8 Nov 2020 21:25:45 +0100 Subject: [PATCH] Brakes positions to python dictionary --- DynObj.cpp | 3 ++- McZapkie/MOVER.h | 1 + McZapkie/Mover.cpp | 1 + Train.cpp | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/DynObj.cpp b/DynObj.cpp index c20aa012..19e996eb 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -3151,12 +3151,13 @@ bool TDynamicObject::Update(double dt, double dt1) RapidMult = MoverParameters->RapidMult; auto const amax = RapidMult * std::min(FmaxPN / masamax, MoverParameters->MED_amax); - auto const doorisopen { + auto doorisopen { ( false == MoverParameters->Doors.instances[ side::left ].is_closed ) || ( false == MoverParameters->Doors.instances[ side::right ].is_closed ) || ( MoverParameters->Doors.permit_needed && ( MoverParameters->Doors.instances[ side::left ].open_permit || MoverParameters->Doors.instances[ side::right ].open_permit ) ) }; + //doorisopen &= !(MoverParameters->ReleaseParkingBySpringBrakeWhenDoorIsOpen && MoverParameters->SpringBrake.IsActive); if ((MoverParameters->Vel < 0.5) && (eimic < 0 || doorisopen || MoverParameters->Hamulec->GetEDBCP())) { diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index ec0f09ed..8599d5b8 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1154,6 +1154,7 @@ public: bool MBrake = false; /*Czy jest hamulec reczny*/ double StopBrakeDecc = 0.0; bool ReleaseParkingBySpringBrake { false }; + bool ReleaseParkingBySpringBrakeWhenDoorIsOpen{ false }; bool SpringBrakeCutsOffDrive { true }; double SpringBrakeDriveEmergencyVel { -1 }; TSecuritySystem SecuritySystem; diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 89ff27f4..f70e4df8 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -10212,6 +10212,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( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, ""); extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, ""); diff --git a/Train.cpp b/Train.cpp index 10d94c6f..dbd48484 100644 --- a/Train.cpp +++ b/Train.cpp @@ -584,6 +584,8 @@ dictionary_source *TTrain::GetTrainState() { dict->insert( "main_ctrl_actual_pos", mvControlled->MainCtrlActualPos ); dict->insert( "scndctrl_pos", mvControlled->ScndCtrlPos ); dict->insert( "scnd_ctrl_actual_pos", mvControlled->ScndCtrlActualPos ); + dict->insert( "brakectrl_pos", mvControlled->fBrakeCtrlPos ); + dict->insert( "localbrake_pos", mvControlled->LocalBrakePosA ); dict->insert( "new_speed", mvOccupied->NewSpeed); dict->insert( "speedctrl", mvOccupied->SpeedCtrlValue); dict->insert( "speedctrlpower", mvOccupied->SpeedCtrlUnit.DesiredPower );