16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 04:39:18 +02:00

build 200506. emergency brake warning signal

This commit is contained in:
tmj-fstate
2020-05-06 16:03:03 +02:00
parent 9c3fbf489d
commit 52167f7955
5 changed files with 36 additions and 24 deletions

View File

@@ -4259,23 +4259,32 @@ void TDynamicObject::RenderSounds() {
} }
// horns // horns
if( TestFlag( MoverParameters->WarningSignal, 1 ) ) { {
sHorn1.play( sound_flags::exclusive | sound_flags::looping ); // for moving vehicle combine regular horn activation flag with emergency brake horn activation flag, if the brake is active
} auto const warningsignal { (
else { ( MoverParameters->Vel > 0.5 ) && ( MoverParameters->AlarmChainFlag ) ?
sHorn1.stop(); MoverParameters->EmergencyBrakeWarningSignal :
} 0 )
if( TestFlag( MoverParameters->WarningSignal, 2 ) ) { | ( MoverParameters->WarningSignal ) };
sHorn2.play( sound_flags::exclusive | sound_flags::looping );
} if( TestFlag( warningsignal, 1 ) ) {
else { sHorn1.play( sound_flags::exclusive | sound_flags::looping );
sHorn2.stop(); }
} else {
if( TestFlag( MoverParameters->WarningSignal, 4 ) ) { sHorn1.stop();
sHorn3.play( sound_flags::exclusive | sound_flags::looping ); }
} if( TestFlag( warningsignal, 2 ) ) {
else { sHorn2.play( sound_flags::exclusive | sound_flags::looping );
sHorn3.stop(); }
else {
sHorn2.stop();
}
if( TestFlag( warningsignal, 4 ) ) {
sHorn3.play( sound_flags::exclusive | sound_flags::looping );
}
else {
sHorn3.stop();
}
} }
// szum w czasie jazdy // szum w czasie jazdy
if( ( GetVelocity() > 0.5 ) if( ( GetVelocity() > 0.5 )

View File

@@ -1128,6 +1128,7 @@ public:
bool MBrake = false; /*Czy jest hamulec reczny*/ bool MBrake = false; /*Czy jest hamulec reczny*/
double StopBrakeDecc = 0.0; double StopBrakeDecc = 0.0;
TSecuritySystem SecuritySystem; TSecuritySystem SecuritySystem;
int EmergencyBrakeWarningSignal{ 0 }; // combined with basic WarningSignal when manual emergency brake is active
TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/ TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/
int UniCtrlListSize = 0; /*wielkosc listy pozycji uniwersalnego nastawnika*/ int UniCtrlListSize = 0; /*wielkosc listy pozycji uniwersalnego nastawnika*/
bool UniCtrlIntegratedBrakePNCtrl = false; /*zintegrowany nastawnik JH obsluguje hamulec PN*/ bool UniCtrlIntegratedBrakePNCtrl = false; /*zintegrowany nastawnik JH obsluguje hamulec PN*/

View File

@@ -10301,6 +10301,8 @@ void TMoverParameters::LoadFIZ_Security( std::string const &line ) {
extract_value( SecuritySystem.SoundSignalDelay, "SoundSignalDelay", line, "" ); extract_value( SecuritySystem.SoundSignalDelay, "SoundSignalDelay", line, "" );
extract_value( SecuritySystem.EmergencyBrakeDelay, "EmergencyBrakeDelay", line, "" ); extract_value( SecuritySystem.EmergencyBrakeDelay, "EmergencyBrakeDelay", line, "" );
extract_value( SecuritySystem.RadioStop, "RadioStop", line, "" ); extract_value( SecuritySystem.RadioStop, "RadioStop", line, "" );
extract_value( EmergencyBrakeWarningSignal, "EmergencyBrakeWarningSignal", line, "" );
} }
void TMoverParameters::LoadFIZ_Clima( std::string const &line ) { void TMoverParameters::LoadFIZ_Clima( std::string const &line ) {

View File

@@ -5744,14 +5744,14 @@ void TTrain::OnCommand_cabchangeforward( TTrain *Train, command_data const &Comm
movedirection > 0 ? movedirection > 0 ?
end::front : end::front :
end::rear ) }; end::rear ) };
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) { if( TestFlag( Train->mvOccupied->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
// przejscie do nastepnego pojazdu // przejscie do nastepnego pojazdu
auto *targetvehicle = ( auto *targetvehicle = (
exitdirection == end::front ? exitdirection == end::front ?
Train->DynamicObject->PrevConnected() : Train->DynamicObject->PrevConnected() :
Train->DynamicObject->NextConnected() ); Train->DynamicObject->NextConnected() );
targetvehicle->MoverParameters->CabOccupied = ( targetvehicle->MoverParameters->CabOccupied = (
Train->DynamicObject->MoverParameters->Neighbours[ exitdirection ].vehicle_end ? Train->mvOccupied->Neighbours[ exitdirection ].vehicle_end ?
-1 : -1 :
1 ); 1 );
Train->MoveToVehicle( targetvehicle ); Train->MoveToVehicle( targetvehicle );
@@ -5778,14 +5778,14 @@ void TTrain::OnCommand_cabchangebackward( TTrain *Train, command_data const &Com
movedirection > 0 ? movedirection > 0 ?
end::front : end::front :
end::rear ) }; end::rear ) };
if( TestFlag( Train->DynamicObject->MoverParameters->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) { if( TestFlag( Train->mvOccupied->Couplers[ exitdirection ].CouplingFlag, coupling::gangway ) ) {
// przejscie do nastepnego pojazdu // przejscie do nastepnego pojazdu
auto *targetvehicle = ( auto *targetvehicle = (
exitdirection == end::front ? exitdirection == end::front ?
Train->DynamicObject->PrevConnected() : Train->DynamicObject->PrevConnected() :
Train->DynamicObject->NextConnected() ); Train->DynamicObject->NextConnected() );
targetvehicle->MoverParameters->CabOccupied = ( targetvehicle->MoverParameters->CabOccupied = (
Train->DynamicObject->MoverParameters->Neighbours[ exitdirection ].vehicle_end ? Train->mvOccupied->Neighbours[ exitdirection ].vehicle_end ?
-1 : -1 :
1 ); 1 );
Train->MoveToVehicle( targetvehicle ); Train->MoveToVehicle( targetvehicle );
@@ -7016,8 +7016,8 @@ bool TTrain::Update( double const Deltatime )
ggMotorBlowersAllOffButton.Update(); ggMotorBlowersAllOffButton.Update();
// wyprowadzenie sygnałów dla haslera na PoKeys (zaznaczanie na taśmie) // wyprowadzenie sygnałów dla haslera na PoKeys (zaznaczanie na taśmie)
btHaslerBrakes.Turn(DynamicObject->MoverParameters->BrakePress > 0.4); // ciśnienie w cylindrach btHaslerBrakes.Turn(mvOccupied->BrakePress > 0.4); // ciśnienie w cylindrach
btHaslerCurrent.Turn(DynamicObject->MoverParameters->Im != 0.0); // prąd na silnikach btHaslerCurrent.Turn(mvOccupied->Im != 0.0); // prąd na silnikach
// calculate current level of interior illumination // calculate current level of interior illumination
{ {

View File

@@ -1,5 +1,5 @@
#pragma once #pragma once
#define VERSION_MAJOR 20 #define VERSION_MAJOR 20
#define VERSION_MINOR 501 #define VERSION_MINOR 506
#define VERSION_REVISION 0 #define VERSION_REVISION 0