From 11ba7696a58c63673cc1829dbf4d1b84e4ae2f12 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 fe6d6ebd..e59e63d1 100644 --- a/DynObj.cpp +++ b/DynObj.cpp @@ -3111,12 +3111,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 cd2b7f0e..68fc4bed 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 4911446d..b9e17887 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -10226,6 +10226,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 cfc77a78..cc98cccd 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 );