From 2342e103cd1f2646e500a833402ea6c80da91acb Mon Sep 17 00:00:00 2001 From: Hirek Date: Thu, 26 Dec 2024 18:24:25 +0100 Subject: [PATCH 1/6] Add missing asio ref --- .gitmodules | 3 +++ ref/asio | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 ref/asio diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..1d7e30cc --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "ref/asio"] + path = ref/asio + url = https://github.com/chriskohlhoff/asio.git diff --git a/ref/asio b/ref/asio new file mode 160000 index 00000000..62481a25 --- /dev/null +++ b/ref/asio @@ -0,0 +1 @@ +Subproject commit 62481a25be6cf78cbe714419a4462fd89bd84ab9 From a0a3e504fc345fce61c7dd4846daa3576640e178 Mon Sep 17 00:00:00 2001 From: Hirek Date: Thu, 26 Dec 2024 18:48:40 +0100 Subject: [PATCH 2/6] Add drawn and returned power values for pyrthon Added power_drawn and power_returned to dict (both double) --- Train.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Train.cpp b/Train.cpp index dc40337b..ac87ae1f 100644 --- a/Train.cpp +++ b/Train.cpp @@ -743,6 +743,9 @@ dictionary_source *TTrain::GetTrainState( dictionary_source const &Extraparamete dict->insert( "im", std::abs( mvControlled->Im ) ); dict->insert( "fuse", mvControlled->FuseFlag ); dict->insert( "epfuse", mvOccupied->EpFuse ); + dict->insert( "power_drawn", mvOccupied->EnergyMeter.first); + dict->insert( "power_returned", mvOccupied->EnergyMeter.second); + // induction motor state data char const *TXTT[ 10 ] = { "fd", "fdt", "fdb", "pd", "pdt", "pdb", "itothv", "1", "2", "3" }; char const *TXTC[ 10 ] = { "fr", "frt", "frb", "pr", "prt", "prb", "im", "vm", "ihv", "uhv" }; From dd49381c3c5c49501e851a009f79b07af79e018f Mon Sep 17 00:00:00 2001 From: Hirek Date: Thu, 26 Dec 2024 19:31:06 +0100 Subject: [PATCH 3/6] Set re/fasio desired tag --- ref/asio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ref/asio b/ref/asio index 62481a25..b3d2ab72 160000 --- a/ref/asio +++ b/ref/asio @@ -1 +1 @@ -Subproject commit 62481a25be6cf78cbe714419a4462fd89bd84ab9 +Subproject commit b3d2ab7255fabe46a49b24a584c9fd797c8248e5 From 0522d12cd38d26dedd358b16421756a8e1641128 Mon Sep 17 00:00:00 2001 From: Hirek Date: Sat, 28 Dec 2024 00:15:36 +0100 Subject: [PATCH 4/6] Implemented HideDirStatusWhenMoving entry --- McZapkie/MOVER.h | 1 + McZapkie/Mover.cpp | 1 + Train.cpp | 12 ++++++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index 2702aee1..c550b76f 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1196,6 +1196,7 @@ public: bool ReleaseParkingBySpringBrakeWhenDoorIsOpen{ false }; bool SpringBrakeCutsOffDrive { true }; double SpringBrakeDriveEmergencyVel { -1 }; + bool HideDirStatusWhenMoving { false }; TSecuritySystem SecuritySystem; int EmergencyBrakeWarningSignal{ 0 }; // combined with basic WarningSignal when manual emergency brake is active TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/ diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index ae3180f5..66a78eff 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -10576,6 +10576,7 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) { extract_value( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, ""); extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, ""); + extract_value(HideDirStatusWhenMoving "HideDirStatusWhenMoving", line, ""); std::map starts { { "Disabled", start_t::disabled }, { "Manual", start_t::manual }, diff --git a/Train.cpp b/Train.cpp index ac87ae1f..4abd7f7b 100644 --- a/Train.cpp +++ b/Train.cpp @@ -7537,8 +7537,16 @@ bool TTrain::Update( double const Deltatime ) btLampkaDoorLockOff.Turn( false == mvOccupied->Doors.lock_enabled ); btLampkaDepartureSignal.Turn( mvControlled->DepartureSignal ); btLampkaNapNastHam.Turn((mvControlled->DirActive != 0) && (mvOccupied->EpFuse)); // napiecie na nastawniku hamulcowym - btLampkaForward.Turn(mvControlled->DirActive > 0); // jazda do przodu - btLampkaBackward.Turn(mvControlled->DirActive < 0); // jazda do tyłu + // Wylaczanie lampek kierunku gdy jedziemy + // Feature uruchamiany z fiz z sekcji Ctrl. wpisem HideDirStatusWhenMoving=Yes (domyslnie No) + if (mvOccupied->HideDirStatusWhenMoving && mvOccupied->Vel > 1) { + btLampkaForward.Turn(false); + btLampkaBackward.Turn(false); + } + else { + btLampkaForward.Turn(mvControlled->DirActive > 0); // jazda do przodu + btLampkaBackward.Turn(mvControlled->DirActive < 0); // jazda do tyłu + } btLampkaED.Turn(mvControlled->DynamicBrakeFlag); // hamulec ED btLampkaBrakeProfileG.Turn( TestFlag( mvOccupied->BrakeDelayFlag, bdelay_G ) ); btLampkaBrakeProfileP.Turn( TestFlag( mvOccupied->BrakeDelayFlag, bdelay_P ) ); From efeaaf6235c43731fb35f2f1328bdd4f54cdd5cd Mon Sep 17 00:00:00 2001 From: Hirek Date: Sat, 28 Dec 2024 00:22:15 +0100 Subject: [PATCH 5/6] Add HideDirStatusSpeed parameter --- McZapkie/MOVER.h | 3 ++- McZapkie/Mover.cpp | 4 +++- Train.cpp | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/McZapkie/MOVER.h b/McZapkie/MOVER.h index c550b76f..73a9df50 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1196,7 +1196,8 @@ public: bool ReleaseParkingBySpringBrakeWhenDoorIsOpen{ false }; bool SpringBrakeCutsOffDrive { true }; double SpringBrakeDriveEmergencyVel { -1 }; - bool HideDirStatusWhenMoving { false }; + bool HideDirStatusWhenMoving { false }; // Czy gasic lampki kierunku powyzej predkosci zdefiniowanej przez HideDirStatusSpeed + int HideDirStatusSpeed{ 1 }; // Predkosc od ktorej lampki kierunku sa wylaczane TSecuritySystem SecuritySystem; int EmergencyBrakeWarningSignal{ 0 }; // combined with basic WarningSignal when manual emergency brake is active TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/ diff --git a/McZapkie/Mover.cpp b/McZapkie/Mover.cpp index 66a78eff..1b9bfbfe 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -10576,7 +10576,9 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) { extract_value( SpringBrakeCutsOffDrive, "SpringBrakeCutsOffDrive", line, ""); extract_value( SpringBrakeDriveEmergencyVel, "SpringBrakeDriveEmergencyVel", line, ""); - extract_value(HideDirStatusWhenMoving "HideDirStatusWhenMoving", line, ""); + extract_value(HideDirStatusWhenMoving, "HideDirStatusWhenMoving", line, ""); + extract_value(HideDirStatusSpeed, "HideDirStatusSpeed", line, ""); + std::map starts { { "Disabled", start_t::disabled }, { "Manual", start_t::manual }, diff --git a/Train.cpp b/Train.cpp index 4abd7f7b..f2d80fbe 100644 --- a/Train.cpp +++ b/Train.cpp @@ -7539,7 +7539,9 @@ bool TTrain::Update( double const Deltatime ) btLampkaNapNastHam.Turn((mvControlled->DirActive != 0) && (mvOccupied->EpFuse)); // napiecie na nastawniku hamulcowym // Wylaczanie lampek kierunku gdy jedziemy // Feature uruchamiany z fiz z sekcji Ctrl. wpisem HideDirStatusWhenMoving=Yes (domyslnie No) - if (mvOccupied->HideDirStatusWhenMoving && mvOccupied->Vel > 1) { + if (mvOccupied->HideDirStatusWhenMoving && // Czy ta funkcja jest w ogole wlaczona + mvOccupied->Vel > mvOccupied->HideDirStatusSpeed) // Uzaleznienie od predkosci + { btLampkaForward.Turn(false); btLampkaBackward.Turn(false); } From 995c9eb47e59068172c1c7b3b735bca79d698154 Mon Sep 17 00:00:00 2001 From: Hirek Date: Sat, 28 Dec 2024 00:29:32 +0100 Subject: [PATCH 6/6] Cleanup for pull request --- Train.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Train.cpp b/Train.cpp index f2d80fbe..450b934c 100644 --- a/Train.cpp +++ b/Train.cpp @@ -7537,6 +7537,7 @@ bool TTrain::Update( double const Deltatime ) btLampkaDoorLockOff.Turn( false == mvOccupied->Doors.lock_enabled ); btLampkaDepartureSignal.Turn( mvControlled->DepartureSignal ); btLampkaNapNastHam.Turn((mvControlled->DirActive != 0) && (mvOccupied->EpFuse)); // napiecie na nastawniku hamulcowym + // Wylaczanie lampek kierunku gdy jedziemy // Feature uruchamiany z fiz z sekcji Ctrl. wpisem HideDirStatusWhenMoving=Yes (domyslnie No) if (mvOccupied->HideDirStatusWhenMoving && // Czy ta funkcja jest w ogole wlaczona @@ -7549,6 +7550,7 @@ bool TTrain::Update( double const Deltatime ) btLampkaForward.Turn(mvControlled->DirActive > 0); // jazda do przodu btLampkaBackward.Turn(mvControlled->DirActive < 0); // jazda do tyłu } + btLampkaED.Turn(mvControlled->DynamicBrakeFlag); // hamulec ED btLampkaBrakeProfileG.Turn( TestFlag( mvOccupied->BrakeDelayFlag, bdelay_G ) ); btLampkaBrakeProfileP.Turn( TestFlag( mvOccupied->BrakeDelayFlag, bdelay_P ) );