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/McZapkie/MOVER.h b/McZapkie/MOVER.h index 2702aee1..73a9df50 100644 --- a/McZapkie/MOVER.h +++ b/McZapkie/MOVER.h @@ -1196,6 +1196,8 @@ public: bool ReleaseParkingBySpringBrakeWhenDoorIsOpen{ false }; bool SpringBrakeCutsOffDrive { true }; double SpringBrakeDriveEmergencyVel { -1 }; + 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 ae3180f5..1b9bfbfe 100644 --- a/McZapkie/Mover.cpp +++ b/McZapkie/Mover.cpp @@ -10576,6 +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(HideDirStatusSpeed, "HideDirStatusSpeed", line, ""); + std::map starts { { "Disabled", start_t::disabled }, { "Manual", start_t::manual }, diff --git a/Train.cpp b/Train.cpp index dc40337b..450b934c 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" }; @@ -7534,8 +7537,20 @@ 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 && // Czy ta funkcja jest w ogole wlaczona + mvOccupied->Vel > mvOccupied->HideDirStatusSpeed) // Uzaleznienie od predkosci + { + 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 ) ); diff --git a/ref/asio b/ref/asio new file mode 160000 index 00000000..b3d2ab72 --- /dev/null +++ b/ref/asio @@ -0,0 +1 @@ +Subproject commit b3d2ab7255fabe46a49b24a584c9fd797c8248e5