mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-23 00:29:19 +02:00
voltage relays, additional light cab controls, minor cab control fixes
This commit is contained in:
2
Button.h
2
Button.h
@@ -25,7 +25,7 @@ public:
|
|||||||
void Turn( bool const State );
|
void Turn( bool const State );
|
||||||
inline
|
inline
|
||||||
bool GetValue() const {
|
bool GetValue() const {
|
||||||
return ( m_state ? 1 : 0 ); }
|
return m_state; }
|
||||||
inline
|
inline
|
||||||
bool Active() {
|
bool Active() {
|
||||||
return ( ( pModelOn != nullptr )
|
return ( ( pModelOn != nullptr )
|
||||||
|
|||||||
@@ -410,14 +410,14 @@ struct TBoilerType {
|
|||||||
};
|
};
|
||||||
/*rodzaj odbieraka pradu*/
|
/*rodzaj odbieraka pradu*/
|
||||||
struct TCurrentCollector {
|
struct TCurrentCollector {
|
||||||
long CollectorsNo; //musi być tu, bo inaczej się kopie
|
long CollectorsNo{0}; //musi być tu, bo inaczej się kopie
|
||||||
double MinH; double MaxH; //zakres ruchu pantografu, nigdzie nie używany
|
double MinH{ 0.0 }; double MaxH{ 0.0 }; //zakres ruchu pantografu, nigdzie nie używany
|
||||||
double CSW; //szerokość części roboczej (styku) ślizgacza
|
double CSW{ 0.0 }; //szerokość części roboczej (styku) ślizgacza
|
||||||
double MinV; double MaxV; //minimalne i maksymalne akceptowane napięcie
|
double MinV{ 0.0 }; double MaxV{ 0.0 }; //minimalne i maksymalne akceptowane napięcie
|
||||||
double OVP; //czy jest przekaznik nadnapieciowy
|
bool OVP{ false }; //czy jest przekaznik nadnapieciowy
|
||||||
double InsetV; //minimalne napięcie wymagane do załączenia
|
double InsetV{ 0.0 }; //minimalne napięcie wymagane do załączenia
|
||||||
double MinPress; //minimalne ciśnienie do załączenia WS
|
double MinPress{ 0.0 }; //minimalne ciśnienie do załączenia WS
|
||||||
double MaxPress; //maksymalne ciśnienie za reduktorem
|
double MaxPress{ 0.0 }; //maksymalne ciśnienie za reduktorem
|
||||||
//inline TCurrentCollector() {
|
//inline TCurrentCollector() {
|
||||||
// CollectorsNo = 0;
|
// CollectorsNo = 0;
|
||||||
// MinH, MaxH, CSW, MinV, MaxV = 0.0;
|
// MinH, MaxH, CSW, MinV, MaxV = 0.0;
|
||||||
@@ -1119,6 +1119,8 @@ public:
|
|||||||
double PantPress = 0.0; /*Cisnienie w zbiornikach pantografow*/
|
double PantPress = 0.0; /*Cisnienie w zbiornikach pantografow*/
|
||||||
bool PantPressSwitchActive{ false }; // state of the pantograph pressure switch. gets primed at defined pressure level in pantograph air system
|
bool PantPressSwitchActive{ false }; // state of the pantograph pressure switch. gets primed at defined pressure level in pantograph air system
|
||||||
bool PantPressLockActive{ false }; // pwr system state flag. fires when pressure switch activates by pantograph pressure dropping below defined level
|
bool PantPressLockActive{ false }; // pwr system state flag. fires when pressure switch activates by pantograph pressure dropping below defined level
|
||||||
|
bool NoVoltRelay{ true }; // switches off if the power level drops below threshold
|
||||||
|
bool OvervoltageRelay{ true }; // switches off if the power level goes above threshold
|
||||||
bool s_CAtestebrake = false; //hunter-091012: zmienna dla testu ca
|
bool s_CAtestebrake = false; //hunter-091012: zmienna dla testu ca
|
||||||
|
|
||||||
/*-zmienne dla lokomotywy spalinowej z przekladnia mechaniczna*/
|
/*-zmienne dla lokomotywy spalinowej z przekladnia mechaniczna*/
|
||||||
@@ -1337,7 +1339,7 @@ public:
|
|||||||
void FuelPumpCheck( double const Timestep );
|
void FuelPumpCheck( double const Timestep );
|
||||||
void OilPumpCheck( double const Timestep );
|
void OilPumpCheck( double const Timestep );
|
||||||
bool FuseOn(void); //bezpiecznik nadamiary
|
bool FuseOn(void); //bezpiecznik nadamiary
|
||||||
bool FuseFlagCheck(void); // sprawdzanie flagi nadmiarowego
|
bool FuseFlagCheck(void) const; // sprawdzanie flagi nadmiarowego
|
||||||
void FuseOff(void); // wylaczenie nadmiarowego
|
void FuseOff(void); // wylaczenie nadmiarowego
|
||||||
double ShowCurrent( int AmpN ) const; //pokazuje bezwgl. wartosc pradu na wybranym amperomierzu
|
double ShowCurrent( int AmpN ) const; //pokazuje bezwgl. wartosc pradu na wybranym amperomierzu
|
||||||
double ShowCurrentP(int AmpN) const; //pokazuje bezwgl. wartosc pradu w wybranym pojezdzie //Q 20160722
|
double ShowCurrentP(int AmpN) const; //pokazuje bezwgl. wartosc pradu w wybranym pojezdzie //Q 20160722
|
||||||
@@ -1357,7 +1359,7 @@ public:
|
|||||||
bool AutoRelaySwitch(bool State); //przelacznik automatycznego rozruchu
|
bool AutoRelaySwitch(bool State); //przelacznik automatycznego rozruchu
|
||||||
bool AutoRelayCheck(void);//symulacja automatycznego rozruchu
|
bool AutoRelayCheck(void);//symulacja automatycznego rozruchu
|
||||||
|
|
||||||
bool ResistorsFlagCheck(void); //sprawdzenie kontrolki oporow rozruchowych NBMX
|
bool ResistorsFlagCheck(void) const; //sprawdzenie kontrolki oporow rozruchowych NBMX
|
||||||
bool PantFront( bool const State, range_t const Notify = range_t::consist ); //obsluga pantografou przedniego
|
bool PantFront( bool const State, range_t const Notify = range_t::consist ); //obsluga pantografou przedniego
|
||||||
bool PantRear( bool const State, range_t const Notify = range_t::consist ); //obsluga pantografu tylnego
|
bool PantRear( bool const State, range_t const Notify = range_t::consist ); //obsluga pantografu tylnego
|
||||||
|
|
||||||
|
|||||||
@@ -2582,6 +2582,8 @@ bool TMoverParameters::MainSwitch( bool const State, range_t const Notify )
|
|||||||
if( ( false == State )
|
if( ( false == State )
|
||||||
|| ( ( ( ScndCtrlPos == 0 ) || ( EngineType == TEngineType::ElectricInductionMotor ) )
|
|| ( ( ( ScndCtrlPos == 0 ) || ( EngineType == TEngineType::ElectricInductionMotor ) )
|
||||||
&& ( ( ConvOvldFlag == false ) || ( TrainType == dt_EZT ) )
|
&& ( ( ConvOvldFlag == false ) || ( TrainType == dt_EZT ) )
|
||||||
|
&& ( true == NoVoltRelay )
|
||||||
|
&& ( true == OvervoltageRelay )
|
||||||
&& ( LastSwitchingTime > CtrlDelay )
|
&& ( LastSwitchingTime > CtrlDelay )
|
||||||
&& ( false == TestFlag( DamageFlag, dtrain_out ) )
|
&& ( false == TestFlag( DamageFlag, dtrain_out ) )
|
||||||
&& ( false == TestFlag( EngDmgFlag, 1 ) ) ) ) {
|
&& ( false == TestFlag( EngDmgFlag, 1 ) ) ) ) {
|
||||||
@@ -4452,6 +4454,32 @@ double TMoverParameters::TractionForce( double dt ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch( EngineType ) {
|
||||||
|
|
||||||
|
case TEngineType::ElectricSeriesMotor: {
|
||||||
|
/*
|
||||||
|
if ((Mains)) // nie wchodzić w funkcję bez potrzeby
|
||||||
|
if ( (std::max(GetTrainsetVoltage(), std::abs(Voltage)) < EnginePowerSource.CollectorParameters.MinV) ||
|
||||||
|
(std::max(GetTrainsetVoltage(), std::abs(Voltage)) * EnginePowerSource.CollectorParameters.OVP >
|
||||||
|
EnginePowerSource.CollectorParameters.MaxV))
|
||||||
|
if( MainSwitch( false, ( TrainType == dt_EZT ? range_t::unit : range_t::local ) ) ) // TODO: check whether we need to send this EMU-wide
|
||||||
|
EventFlag = true; // wywalanie szybkiego z powodu niewłaściwego napięcia
|
||||||
|
*/
|
||||||
|
// update the state of voltage relays
|
||||||
|
auto const voltage { std::max( GetTrainsetVoltage(), std::abs( RunningTraction.TractionVoltage ) ) };
|
||||||
|
NoVoltRelay = ( voltage >= EnginePowerSource.CollectorParameters.MinV );
|
||||||
|
OvervoltageRelay = ( voltage <= EnginePowerSource.CollectorParameters.MaxV ) || ( false == EnginePowerSource.CollectorParameters.OVP );
|
||||||
|
// wywalanie szybkiego z powodu niewłaściwego napięcia
|
||||||
|
EventFlag |= ( ( true == Mains )
|
||||||
|
&& ( ( false == NoVoltRelay ) || ( false == OvervoltageRelay ) )
|
||||||
|
&& ( MainSwitch( false, ( TrainType == dt_EZT ? range_t::unit : range_t::local ) ) ) ); // TODO: check whether we need to send this EMU-wide
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ActiveDir != 0)
|
if (ActiveDir != 0)
|
||||||
switch (EngineType)
|
switch (EngineType)
|
||||||
{
|
{
|
||||||
@@ -4532,13 +4560,6 @@ double TMoverParameters::TractionForce( double dt ) {
|
|||||||
if (Vhyp > CtrlDelay / 2) // jesli czas oddzialywania przekroczony
|
if (Vhyp > CtrlDelay / 2) // jesli czas oddzialywania przekroczony
|
||||||
FuseOff(); // wywalanie bezpiecznika z powodu przetezenia silnikow
|
FuseOff(); // wywalanie bezpiecznika z powodu przetezenia silnikow
|
||||||
|
|
||||||
if ((Mains)) // nie wchodzić w funkcję bez potrzeby
|
|
||||||
if ( (std::max(GetTrainsetVoltage(), std::abs(Voltage)) < EnginePowerSource.CollectorParameters.MinV) ||
|
|
||||||
(std::max(GetTrainsetVoltage(), std::abs(Voltage)) * EnginePowerSource.CollectorParameters.OVP >
|
|
||||||
EnginePowerSource.CollectorParameters.MaxV))
|
|
||||||
if( MainSwitch( false, ( TrainType == dt_EZT ? range_t::unit : range_t::local ) ) ) // TODO: check whether we need to send this EMU-wide
|
|
||||||
EventFlag = true; // wywalanie szybkiego z powodu niewłaściwego napięcia
|
|
||||||
|
|
||||||
if (((DynamicBrakeType == dbrake_automatic) || (DynamicBrakeType == dbrake_switch)) && (DynamicBrakeFlag))
|
if (((DynamicBrakeType == dbrake_automatic) || (DynamicBrakeType == dbrake_switch)) && (DynamicBrakeFlag))
|
||||||
Itot = Im * 2; // 2x2 silniki w EP09
|
Itot = Im * 2; // 2x2 silniki w EP09
|
||||||
else if ((TrainType == dt_EZT) && (Imin == IminLo) && (ScndS)) // yBARC - boczniki na szeregu poprawnie
|
else if ((TrainType == dt_EZT) && (Imin == IminLo) && (ScndS)) // yBARC - boczniki na szeregu poprawnie
|
||||||
@@ -5161,7 +5182,7 @@ double TMoverParameters::ComputeRotatingWheel(double WForce, double dt, double n
|
|||||||
// Q: 20160713
|
// Q: 20160713
|
||||||
// Sprawdzenie bezpiecznika nadmiarowego
|
// Sprawdzenie bezpiecznika nadmiarowego
|
||||||
// *************************************************************************************************
|
// *************************************************************************************************
|
||||||
bool TMoverParameters::FuseFlagCheck(void)
|
bool TMoverParameters::FuseFlagCheck(void) const
|
||||||
{
|
{
|
||||||
bool FFC;
|
bool FFC;
|
||||||
|
|
||||||
@@ -5353,7 +5374,7 @@ bool TMoverParameters::MinCurrentSwitch(bool State)
|
|||||||
// Q: 20160713
|
// Q: 20160713
|
||||||
// Sprawdzenie wskaźnika jazdy na oporach
|
// Sprawdzenie wskaźnika jazdy na oporach
|
||||||
// *************************************************************************************************
|
// *************************************************************************************************
|
||||||
bool TMoverParameters::ResistorsFlagCheck(void)
|
bool TMoverParameters::ResistorsFlagCheck(void) const
|
||||||
{
|
{
|
||||||
bool RFC = false;
|
bool RFC = false;
|
||||||
|
|
||||||
@@ -8500,15 +8521,14 @@ void TMoverParameters::LoadFIZ_PowerParamsDecode( TPowerParameters &Powerparamet
|
|||||||
|
|
||||||
auto &collectorparameters = Powerparameters.CollectorParameters;
|
auto &collectorparameters = Powerparameters.CollectorParameters;
|
||||||
|
|
||||||
|
collectorparameters = TCurrentCollector();
|
||||||
|
|
||||||
extract_value( collectorparameters.CollectorsNo, "CollectorsNo", Line, "" );
|
extract_value( collectorparameters.CollectorsNo, "CollectorsNo", Line, "" );
|
||||||
extract_value( collectorparameters.MinH, "MinH", Line, "" );
|
extract_value( collectorparameters.MinH, "MinH", Line, "" );
|
||||||
extract_value( collectorparameters.MaxH, "MaxH", Line, "" );
|
extract_value( collectorparameters.MaxH, "MaxH", Line, "" );
|
||||||
extract_value( collectorparameters.CSW, "CSW", Line, "" ); //szerokość części roboczej
|
extract_value( collectorparameters.CSW, "CSW", Line, "" ); //szerokość części roboczej
|
||||||
extract_value( collectorparameters.MaxV, "MaxVoltage", Line, "" );
|
extract_value( collectorparameters.MaxV, "MaxVoltage", Line, "" );
|
||||||
collectorparameters.OVP = //przekaźnik nadnapięciowy
|
extract_value( collectorparameters.OVP, "OverVoltProt", Line, "" ); //przekaźnik nadnapięciowy
|
||||||
extract_value( "OverVoltProt", Line ) == "Yes" ?
|
|
||||||
1 :
|
|
||||||
0;
|
|
||||||
//napięcie rozłączające WS
|
//napięcie rozłączające WS
|
||||||
collectorparameters.MinV = 0.5 * collectorparameters.MaxV; //gdyby parametr nie podany
|
collectorparameters.MinV = 0.5 * collectorparameters.MaxV; //gdyby parametr nie podany
|
||||||
extract_value( collectorparameters.MinV, "MinV", Line, "" );
|
extract_value( collectorparameters.MinV, "MinV", Line, "" );
|
||||||
|
|||||||
157
Train.cpp
157
Train.cpp
@@ -311,6 +311,8 @@ TTrain::commandhandler_map const TTrain::m_commandhandlers = {
|
|||||||
{ user_command::instrumentlighttoggle, &TTrain::OnCommand_instrumentlighttoggle },
|
{ user_command::instrumentlighttoggle, &TTrain::OnCommand_instrumentlighttoggle },
|
||||||
{ user_command::instrumentlightenable, &TTrain::OnCommand_instrumentlightenable },
|
{ user_command::instrumentlightenable, &TTrain::OnCommand_instrumentlightenable },
|
||||||
{ user_command::instrumentlightdisable, &TTrain::OnCommand_instrumentlightdisable },
|
{ user_command::instrumentlightdisable, &TTrain::OnCommand_instrumentlightdisable },
|
||||||
|
{ user_command::dashboardlighttoggle, &TTrain::OnCommand_dashboardlighttoggle },
|
||||||
|
{ user_command::timetablelighttoggle, &TTrain::OnCommand_timetablelighttoggle },
|
||||||
{ user_command::doorlocktoggle, &TTrain::OnCommand_doorlocktoggle },
|
{ user_command::doorlocktoggle, &TTrain::OnCommand_doorlocktoggle },
|
||||||
{ user_command::doortoggleleft, &TTrain::OnCommand_doortoggleleft },
|
{ user_command::doortoggleleft, &TTrain::OnCommand_doortoggleleft },
|
||||||
{ user_command::doortoggleright, &TTrain::OnCommand_doortoggleright },
|
{ user_command::doortoggleright, &TTrain::OnCommand_doortoggleright },
|
||||||
@@ -370,7 +372,6 @@ TTrain::TTrain() {
|
|||||||
bCabLightDim = false;
|
bCabLightDim = false;
|
||||||
//-----
|
//-----
|
||||||
pMechSittingPosition = Math3D::vector3(0, 0, 0); // ABu: 180404
|
pMechSittingPosition = Math3D::vector3(0, 0, 0); // ABu: 180404
|
||||||
InstrumentLightActive = false; // ABu: 030405
|
|
||||||
fTachoTimer = 0.0; // włączenie skoków wskazań prędkościomierza
|
fTachoTimer = 0.0; // włączenie skoków wskazań prędkościomierza
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -3619,6 +3620,54 @@ void TTrain::OnCommand_instrumentlightdisable( TTrain *Train, command_data const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TTrain::OnCommand_dashboardlighttoggle( TTrain *Train, command_data const &Command ) {
|
||||||
|
// only reacting to press, so the switch doesn't flip back and forth if key is held down
|
||||||
|
if( Command.action != GLFW_PRESS ) { return; }
|
||||||
|
|
||||||
|
if( Train->ggDashboardLightButton.SubModel == nullptr ) {
|
||||||
|
// TODO: proper control deviced definition for the interiors, that doesn't hinge of presence of 3d submodels
|
||||||
|
WriteLog( "Dashboard Light switch is missing, or wasn't defined" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( false == Train->DashboardLightActive ) {
|
||||||
|
// turn on
|
||||||
|
Train->DashboardLightActive = true;
|
||||||
|
// visual feedback
|
||||||
|
Train->ggDashboardLightButton.UpdateValue( 1.0, Train->dsbSwitch );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//turn off
|
||||||
|
Train->DashboardLightActive = false;
|
||||||
|
// visual feedback
|
||||||
|
Train->ggDashboardLightButton.UpdateValue( 0.0, Train->dsbSwitch );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TTrain::OnCommand_timetablelighttoggle( TTrain *Train, command_data const &Command ) {
|
||||||
|
// only reacting to press, so the switch doesn't flip back and forth if key is held down
|
||||||
|
if( Command.action != GLFW_PRESS ) { return; }
|
||||||
|
|
||||||
|
if( Train->ggTimetableLightButton.SubModel == nullptr ) {
|
||||||
|
// TODO: proper control deviced definition for the interiors, that doesn't hinge of presence of 3d submodels
|
||||||
|
WriteLog( "Timetable Light switch is missing, or wasn't defined" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( false == Train->TimetableLightActive ) {
|
||||||
|
// turn on
|
||||||
|
Train->TimetableLightActive = true;
|
||||||
|
// visual feedback
|
||||||
|
Train->ggTimetableLightButton.UpdateValue( 1.0, Train->dsbSwitch );
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//turn off
|
||||||
|
Train->TimetableLightActive = false;
|
||||||
|
// visual feedback
|
||||||
|
Train->ggTimetableLightButton.UpdateValue( 0.0, Train->dsbSwitch );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TTrain::OnCommand_heatingtoggle( TTrain *Train, command_data const &Command ) {
|
void TTrain::OnCommand_heatingtoggle( TTrain *Train, command_data const &Command ) {
|
||||||
|
|
||||||
if( Train->ggTrainHeatingButton.SubModel == nullptr ) {
|
if( Train->ggTrainHeatingButton.SubModel == nullptr ) {
|
||||||
@@ -4830,18 +4879,6 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
Console::ValueSet(6, fTachoVelocity);
|
Console::ValueSet(6, fTachoVelocity);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// hunter-080812: wyrzucanie szybkiego na elektrykach gdy nie ma napiecia przy dowolnym ustawieniu kierunkowego
|
|
||||||
// Ra: to już jest w T_MoverParameters::TractionForce(), ale zależy od kierunku
|
|
||||||
if( ( mvControlled->Mains )
|
|
||||||
&& ( mvControlled->EnginePowerSource.SourceType == TPowerSource::CurrentCollector ) ) {
|
|
||||||
if( std::max( mvControlled->GetTrainsetVoltage(), std::abs( mvControlled->RunningTraction.TractionVoltage ) ) < 0.5 * mvControlled->EnginePowerSource.MaxVoltage ) {
|
|
||||||
// TODO: check whether it should affect entire consist for EMU
|
|
||||||
// TODO: check whether it should happen if there's power supplied alternatively through hvcouplers
|
|
||||||
// TODO: potentially move this to the mover module, as there isn't much reason to have this dependent on the operator presence
|
|
||||||
mvControlled->MainSwitch( false, ( mvControlled->TrainType == dt_EZT ? range_t::unit : range_t::local ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// hunter-091012: swiatlo
|
// hunter-091012: swiatlo
|
||||||
if (bCabLight == true)
|
if (bCabLight == true)
|
||||||
{
|
{
|
||||||
@@ -5290,42 +5327,49 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
if (tmp)
|
if (tmp)
|
||||||
if ( mvControlled->Battery || mvControlled->ConverterFlag ) {
|
if ( mvControlled->Battery || mvControlled->ConverterFlag ) {
|
||||||
|
|
||||||
btLampkaWylSzybkiB.Turn( tmp->MoverParameters->Mains );
|
auto const *mover { tmp->MoverParameters };
|
||||||
btLampkaWylSzybkiBOff.Turn( false == tmp->MoverParameters->Mains );
|
|
||||||
|
|
||||||
btLampkaOporyB.Turn(tmp->MoverParameters->ResistorsFlagCheck());
|
btLampkaWylSzybkiB.Turn( mover->Mains );
|
||||||
|
btLampkaWylSzybkiBOff.Turn( false == mover->Mains );
|
||||||
|
|
||||||
|
btLampkaOporyB.Turn(mover->ResistorsFlagCheck());
|
||||||
btLampkaBezoporowaB.Turn(
|
btLampkaBezoporowaB.Turn(
|
||||||
( true == tmp->MoverParameters->ResistorsFlagCheck() )
|
( true == mover->ResistorsFlagCheck() )
|
||||||
|| ( tmp->MoverParameters->MainCtrlActualPos == 0 ) ); // do EU04
|
|| ( mover->MainCtrlActualPos == 0 ) ); // do EU04
|
||||||
|
|
||||||
if( ( tmp->MoverParameters->StLinFlag )
|
if( ( mover->StLinFlag )
|
||||||
|| ( tmp->MoverParameters->BrakePress > 2.0 )
|
|| ( mover->BrakePress > 2.0 )
|
||||||
|| ( tmp->MoverParameters->PipePress < 0.36 ) ) {
|
|| ( mover->PipePress < 0.36 ) ) {
|
||||||
btLampkaStycznB.Turn( false );
|
btLampkaStycznB.Turn( false );
|
||||||
}
|
}
|
||||||
else if( tmp->MoverParameters->BrakePress < 1.0 ) {
|
else if( mover->BrakePress < 1.0 ) {
|
||||||
btLampkaStycznB.Turn( true ); // mozna prowadzic rozruch
|
btLampkaStycznB.Turn( true ); // mozna prowadzic rozruch
|
||||||
}
|
}
|
||||||
// hunter-271211: sygnalizacja poslizgu w pierwszym pojezdzie, gdy wystapi w drugim
|
// hunter-271211: sygnalizacja poslizgu w pierwszym pojezdzie, gdy wystapi w drugim
|
||||||
btLampkaPoslizg.Turn(tmp->MoverParameters->SlippingWheels);
|
btLampkaPoslizg.Turn(mover->SlippingWheels);
|
||||||
|
|
||||||
btLampkaSprezarkaB.Turn( tmp->MoverParameters->CompressorFlag ); // mutopsitka dziala
|
btLampkaSprezarkaB.Turn( mover->CompressorFlag ); // mutopsitka dziala
|
||||||
btLampkaSprezarkaBOff.Turn( false == tmp->MoverParameters->CompressorFlag );
|
btLampkaSprezarkaBOff.Turn( false == mover->CompressorFlag );
|
||||||
if( mvControlled->Signalling == true ) {
|
if( mvControlled->Signalling == true ) {
|
||||||
if( tmp->MoverParameters->BrakePress >= 1.45f ) {
|
if( mover->BrakePress >= 1.45f ) {
|
||||||
btLampkaHamowanie2zes.Turn( true );
|
btLampkaHamowanie2zes.Turn( true );
|
||||||
}
|
}
|
||||||
if( tmp->MoverParameters->BrakePress < 0.75f ) {
|
if( mover->BrakePress < 0.75f ) {
|
||||||
btLampkaHamowanie2zes.Turn( false );
|
btLampkaHamowanie2zes.Turn( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
btLampkaHamowanie2zes.Turn( false );
|
btLampkaHamowanie2zes.Turn( false );
|
||||||
}
|
}
|
||||||
btLampkaNadmPrzetwB.Turn( tmp->MoverParameters->ConvOvldFlag ); // nadmiarowy przetwornicy?
|
btLampkaNadmPrzetwB.Turn( mover->ConvOvldFlag ); // nadmiarowy przetwornicy?
|
||||||
btLampkaPrzetwB.Turn( tmp->MoverParameters->ConverterFlag ); // zalaczenie przetwornicy
|
btLampkaPrzetwB.Turn( mover->ConverterFlag ); // zalaczenie przetwornicy
|
||||||
btLampkaPrzetwBOff.Turn( false == tmp->MoverParameters->ConverterFlag );
|
btLampkaPrzetwBOff.Turn( false == mover->ConverterFlag );
|
||||||
btLampkaMalfunctionB.Turn( tmp->MoverParameters->dizel_heat.PA );
|
btLampkaHVoltageB.Turn( mover->NoVoltRelay && mover->OvervoltageRelay );
|
||||||
|
btLampkaMalfunctionB.Turn( mover->dizel_heat.PA );
|
||||||
|
// motor fuse indicator turns on if the fuse was blown in any unit under control
|
||||||
|
if( mover->Mains ) {
|
||||||
|
btLampkaNadmSil.Turn( btLampkaNadmSil.GetValue() || mover->FuseFlagCheck() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else // wylaczone
|
else // wylaczone
|
||||||
{
|
{
|
||||||
@@ -5340,6 +5384,7 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
btLampkaNadmPrzetwB.Turn( false );
|
btLampkaNadmPrzetwB.Turn( false );
|
||||||
btLampkaPrzetwB.Turn( false );
|
btLampkaPrzetwB.Turn( false );
|
||||||
btLampkaPrzetwBOff.Turn( false );
|
btLampkaPrzetwBOff.Turn( false );
|
||||||
|
btLampkaHVoltageB.Turn( false );
|
||||||
btLampkaMalfunctionB.Turn( false );
|
btLampkaMalfunctionB.Turn( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5488,25 +5533,15 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
|
|
||||||
//----------
|
//----------
|
||||||
|
|
||||||
// przelaczniki
|
// lights
|
||||||
// ABu030405 obsluga lampki uniwersalnej:
|
auto const lightpower { (
|
||||||
if( btInstrumentLight.Active() ) // w ogóle jest
|
InstrumentLightType == 0 ? mvControlled->Battery || mvControlled->ConverterFlag :
|
||||||
if( InstrumentLightActive ) // załączona
|
InstrumentLightType == 1 ? mvControlled->Mains :
|
||||||
switch( InstrumentLightType ) {
|
InstrumentLightType == 2 ? mvControlled->ConverterFlag :
|
||||||
case 0:
|
false ) };
|
||||||
btInstrumentLight.Turn( mvControlled->Battery || mvControlled->ConverterFlag );
|
btInstrumentLight.Turn( InstrumentLightActive && lightpower );
|
||||||
break;
|
btDashboardLight.Turn( DashboardLightActive && lightpower );
|
||||||
case 1:
|
btTimetableLight.Turn( TimetableLightActive && lightpower );
|
||||||
btInstrumentLight.Turn( mvControlled->Mains );
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
btInstrumentLight.Turn( mvControlled->ConverterFlag );
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
btInstrumentLight.Turn( false );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
btInstrumentLight.Turn( false );
|
|
||||||
|
|
||||||
// guziki:
|
// guziki:
|
||||||
ggMainOffButton.Update();
|
ggMainOffButton.Update();
|
||||||
@@ -5566,6 +5601,8 @@ bool TTrain::Update( double const Deltatime )
|
|||||||
}
|
}
|
||||||
// hunter-091012
|
// hunter-091012
|
||||||
ggInstrumentLightButton.Update();
|
ggInstrumentLightButton.Update();
|
||||||
|
ggDashboardLightButton.Update();
|
||||||
|
ggTimetableLightButton.Update();
|
||||||
ggCabLightButton.Update();
|
ggCabLightButton.Update();
|
||||||
ggCabLightDimButton.Update();
|
ggCabLightDimButton.Update();
|
||||||
ggBatteryButton.Update();
|
ggBatteryButton.Update();
|
||||||
@@ -6698,6 +6735,8 @@ void TTrain::clear_cab_controls()
|
|||||||
universal.Clear();
|
universal.Clear();
|
||||||
}
|
}
|
||||||
ggInstrumentLightButton.Clear();
|
ggInstrumentLightButton.Clear();
|
||||||
|
ggDashboardLightButton.Clear();
|
||||||
|
ggTimetableLightButton.Clear();
|
||||||
// hunter-091012
|
// hunter-091012
|
||||||
ggCabLightButton.Clear();
|
ggCabLightButton.Clear();
|
||||||
ggCabLightDimButton.Clear();
|
ggCabLightDimButton.Clear();
|
||||||
@@ -6781,6 +6820,8 @@ void TTrain::clear_cab_controls()
|
|||||||
btLampkaHamulecReczny.Clear();
|
btLampkaHamulecReczny.Clear();
|
||||||
btLampkaBlokadaDrzwi.Clear();
|
btLampkaBlokadaDrzwi.Clear();
|
||||||
btInstrumentLight.Clear();
|
btInstrumentLight.Clear();
|
||||||
|
btDashboardLight.Clear();
|
||||||
|
btTimetableLight.Clear();
|
||||||
btLampkaWentZaluzje.Clear();
|
btLampkaWentZaluzje.Clear();
|
||||||
btLampkaDoorLeft.Clear();
|
btLampkaDoorLeft.Clear();
|
||||||
btLampkaDoorRight.Clear();
|
btLampkaDoorRight.Clear();
|
||||||
@@ -6794,6 +6835,7 @@ void TTrain::clear_cab_controls()
|
|||||||
btLampkaRadiotelefon.Clear();
|
btLampkaRadiotelefon.Clear();
|
||||||
btLampkaHamienie.Clear();
|
btLampkaHamienie.Clear();
|
||||||
btLampkaBrakingOff.Clear();
|
btLampkaBrakingOff.Clear();
|
||||||
|
btLampkaED.Clear();
|
||||||
btLampkaBrakeProfileG.Clear();
|
btLampkaBrakeProfileG.Clear();
|
||||||
btLampkaBrakeProfileP.Clear();
|
btLampkaBrakeProfileP.Clear();
|
||||||
btLampkaBrakeProfileR.Clear();
|
btLampkaBrakeProfileR.Clear();
|
||||||
@@ -6803,10 +6845,12 @@ void TTrain::clear_cab_controls()
|
|||||||
btLampkaSprezarkaBOff.Clear();
|
btLampkaSprezarkaBOff.Clear();
|
||||||
btLampkaFuelPumpOff.Clear();
|
btLampkaFuelPumpOff.Clear();
|
||||||
btLampkaNapNastHam.Clear();
|
btLampkaNapNastHam.Clear();
|
||||||
|
btLampkaOporyB.Clear();
|
||||||
btLampkaStycznB.Clear();
|
btLampkaStycznB.Clear();
|
||||||
btLampkaHamowanie1zes.Clear();
|
btLampkaHamowanie1zes.Clear();
|
||||||
btLampkaHamowanie2zes.Clear();
|
btLampkaHamowanie2zes.Clear();
|
||||||
btLampkaNadmPrzetwB.Clear();
|
btLampkaNadmPrzetwB.Clear();
|
||||||
|
btLampkaHVoltageB.Clear();
|
||||||
btLampkaForward.Clear();
|
btLampkaForward.Clear();
|
||||||
btLampkaBackward.Clear();
|
btLampkaBackward.Clear();
|
||||||
// light indicators
|
// light indicators
|
||||||
@@ -7001,6 +7045,14 @@ void TTrain::set_cab_controls() {
|
|||||||
InstrumentLightActive ?
|
InstrumentLightActive ?
|
||||||
1.0 :
|
1.0 :
|
||||||
0.0 ) );
|
0.0 ) );
|
||||||
|
ggDashboardLightButton.PutValue( (
|
||||||
|
DashboardLightActive ?
|
||||||
|
1.0 :
|
||||||
|
0.0 ) );
|
||||||
|
ggTimetableLightButton.PutValue( (
|
||||||
|
TimetableLightActive ?
|
||||||
|
1.0 :
|
||||||
|
0.0 ) );
|
||||||
// doors
|
// doors
|
||||||
// NOTE: we're relying on the cab models to have switches reversed for the rear cab(?)
|
// NOTE: we're relying on the cab models to have switches reversed for the rear cab(?)
|
||||||
ggDoorLeftButton.PutValue( mvOccupied->DoorLeftOpened ? 1.0 : 0.0 );
|
ggDoorLeftButton.PutValue( mvOccupied->DoorLeftOpened ? 1.0 : 0.0 );
|
||||||
@@ -7149,6 +7201,7 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
|
|||||||
{ "i-resistorsb:", btLampkaOporyB },
|
{ "i-resistorsb:", btLampkaOporyB },
|
||||||
{ "i-contactorsb:", btLampkaStycznB },
|
{ "i-contactorsb:", btLampkaStycznB },
|
||||||
{ "i-conv_ovldb:", btLampkaNadmPrzetwB },
|
{ "i-conv_ovldb:", btLampkaNadmPrzetwB },
|
||||||
|
{ "i-hvoltageb:", btLampkaHVoltageB },
|
||||||
{ "i-malfunction:", btLampkaMalfunction },
|
{ "i-malfunction:", btLampkaMalfunction },
|
||||||
{ "i-malfunctionb:", btLampkaMalfunctionB },
|
{ "i-malfunctionb:", btLampkaMalfunctionB },
|
||||||
{ "i-forward:", btLampkaForward },
|
{ "i-forward:", btLampkaForward },
|
||||||
@@ -7163,6 +7216,8 @@ bool TTrain::initialize_button(cParser &Parser, std::string const &Label, int co
|
|||||||
{ "i-rearrightlight:", btLampkaRearRightLight },
|
{ "i-rearrightlight:", btLampkaRearRightLight },
|
||||||
{ "i-rearleftend:", btLampkaRearLeftEndLight },
|
{ "i-rearleftend:", btLampkaRearLeftEndLight },
|
||||||
{ "i-rearrightend:", btLampkaRearRightEndLight },
|
{ "i-rearrightend:", btLampkaRearRightEndLight },
|
||||||
|
{ "i-dashboardlight:", btDashboardLight },
|
||||||
|
{ "i-timetablelight:", btTimetableLight },
|
||||||
{ "i-cablight:", btCabLight }
|
{ "i-cablight:", btCabLight }
|
||||||
};
|
};
|
||||||
auto lookup = lights.find( Label );
|
auto lookup = lights.find( Label );
|
||||||
@@ -7290,6 +7345,8 @@ bool TTrain::initialize_gauge(cParser &Parser, std::string const &Label, int con
|
|||||||
{ "door_signalling_sw:", ggDoorSignallingButton },
|
{ "door_signalling_sw:", ggDoorSignallingButton },
|
||||||
{ "nextcurrent_sw:", ggNextCurrentButton },
|
{ "nextcurrent_sw:", ggNextCurrentButton },
|
||||||
{ "instrumentlight_sw:", ggInstrumentLightButton },
|
{ "instrumentlight_sw:", ggInstrumentLightButton },
|
||||||
|
{ "dashboardlight_sw:", ggDashboardLightButton },
|
||||||
|
{ "timetablelight_sw:", ggTimetableLightButton },
|
||||||
{ "cablight_sw:", ggCabLightButton },
|
{ "cablight_sw:", ggCabLightButton },
|
||||||
{ "cablightdim_sw:", ggCabLightDimButton },
|
{ "cablightdim_sw:", ggCabLightDimButton },
|
||||||
{ "battery_sw:", ggBatteryButton },
|
{ "battery_sw:", ggBatteryButton },
|
||||||
|
|||||||
23
Train.h
23
Train.h
@@ -296,6 +296,8 @@ class TTrain
|
|||||||
static void OnCommand_instrumentlighttoggle( TTrain *Train, command_data const &Command );
|
static void OnCommand_instrumentlighttoggle( TTrain *Train, command_data const &Command );
|
||||||
static void OnCommand_instrumentlightenable( TTrain *Train, command_data const &Command );
|
static void OnCommand_instrumentlightenable( TTrain *Train, command_data const &Command );
|
||||||
static void OnCommand_instrumentlightdisable( TTrain *Train, command_data const &Command );
|
static void OnCommand_instrumentlightdisable( TTrain *Train, command_data const &Command );
|
||||||
|
static void OnCommand_dashboardlighttoggle( TTrain *Train, command_data const &Command );
|
||||||
|
static void OnCommand_timetablelighttoggle( TTrain *Train, command_data const &Command );
|
||||||
static void OnCommand_doorlocktoggle( TTrain *Train, command_data const &Command );
|
static void OnCommand_doorlocktoggle( TTrain *Train, command_data const &Command );
|
||||||
static void OnCommand_doortoggleleft( TTrain *Train, command_data const &Command );
|
static void OnCommand_doortoggleleft( TTrain *Train, command_data const &Command );
|
||||||
static void OnCommand_doortoggleright( TTrain *Train, command_data const &Command );
|
static void OnCommand_doortoggleright( TTrain *Train, command_data const &Command );
|
||||||
@@ -415,6 +417,8 @@ public: // reszta może by?publiczna
|
|||||||
std::array<TGauge, 10> ggUniversals; // NOTE: temporary arrangement until we have dynamically built control table
|
std::array<TGauge, 10> ggUniversals; // NOTE: temporary arrangement until we have dynamically built control table
|
||||||
|
|
||||||
TGauge ggInstrumentLightButton;
|
TGauge ggInstrumentLightButton;
|
||||||
|
TGauge ggDashboardLightButton;
|
||||||
|
TGauge ggTimetableLightButton;
|
||||||
TGauge ggCabLightButton; // hunter-091012: przelacznik oswietlania kabiny
|
TGauge ggCabLightButton; // hunter-091012: przelacznik oswietlania kabiny
|
||||||
TGauge ggCabLightDimButton; // hunter-091012: przelacznik przyciemnienia
|
TGauge ggCabLightDimButton; // hunter-091012: przelacznik przyciemnienia
|
||||||
TGauge ggBatteryButton; // Stele 161228 hebelek baterii
|
TGauge ggBatteryButton; // Stele 161228 hebelek baterii
|
||||||
@@ -458,13 +462,13 @@ public: // reszta może by?publiczna
|
|||||||
TButton btLampkaNadmPrzetw;
|
TButton btLampkaNadmPrzetw;
|
||||||
TButton btLampkaPrzetw;
|
TButton btLampkaPrzetw;
|
||||||
TButton btLampkaPrzetwOff;
|
TButton btLampkaPrzetwOff;
|
||||||
TButton btLampkaPrzekRozn;
|
TButton btLampkaPrzekRozn; // TODO: implement
|
||||||
TButton btLampkaPrzekRoznPom;
|
TButton btLampkaPrzekRoznPom; // TODO: implement
|
||||||
TButton btLampkaNadmSil;
|
TButton btLampkaNadmSil;
|
||||||
TButton btLampkaWylSzybki;
|
TButton btLampkaWylSzybki;
|
||||||
TButton btLampkaWylSzybkiOff;
|
TButton btLampkaWylSzybkiOff;
|
||||||
TButton btLampkaNadmWent;
|
TButton btLampkaNadmWent;
|
||||||
TButton btLampkaNadmSpr;
|
TButton btLampkaNadmSpr; // TODO: implement
|
||||||
// yB: drugie lampki dla EP05 i ET42
|
// yB: drugie lampki dla EP05 i ET42
|
||||||
TButton btLampkaOporyB;
|
TButton btLampkaOporyB;
|
||||||
TButton btLampkaStycznB;
|
TButton btLampkaStycznB;
|
||||||
@@ -473,6 +477,7 @@ public: // reszta może by?publiczna
|
|||||||
TButton btLampkaNadmPrzetwB;
|
TButton btLampkaNadmPrzetwB;
|
||||||
TButton btLampkaPrzetwB;
|
TButton btLampkaPrzetwB;
|
||||||
TButton btLampkaPrzetwBOff;
|
TButton btLampkaPrzetwBOff;
|
||||||
|
TButton btLampkaHVoltageB; // TODO: implement
|
||||||
// KURS90 lampki jazdy bezoporowej dla EU04
|
// KURS90 lampki jazdy bezoporowej dla EU04
|
||||||
TButton btLampkaBezoporowaB;
|
TButton btLampkaBezoporowaB;
|
||||||
TButton btLampkaBezoporowa;
|
TButton btLampkaBezoporowa;
|
||||||
@@ -485,9 +490,13 @@ public: // reszta może by?publiczna
|
|||||||
TButton btLampkaOpory;
|
TButton btLampkaOpory;
|
||||||
TButton btLampkaWysRozr;
|
TButton btLampkaWysRozr;
|
||||||
TButton btInstrumentLight;
|
TButton btInstrumentLight;
|
||||||
int InstrumentLightType; // ABu 030405 - swiecenie uzaleznione od: 0-nic, 1-obw.gl, 2-przetw.
|
TButton btDashboardLight;
|
||||||
bool InstrumentLightActive;
|
TButton btTimetableLight;
|
||||||
TButton btLampkaWentZaluzje; // ET22
|
int InstrumentLightType{ 0 }; // ABu 030405 - swiecenie uzaleznione od: 0-nic, 1-obw.gl, 2-przetw.
|
||||||
|
bool InstrumentLightActive{ false };
|
||||||
|
bool DashboardLightActive{ false };
|
||||||
|
bool TimetableLightActive{ false };
|
||||||
|
TButton btLampkaWentZaluzje; // ET22 // TODO: implement
|
||||||
TButton btLampkaOgrzewanieSkladu;
|
TButton btLampkaOgrzewanieSkladu;
|
||||||
TButton btLampkaSHP;
|
TButton btLampkaSHP;
|
||||||
TButton btLampkaCzuwaka; // McZapkie-141102
|
TButton btLampkaCzuwaka; // McZapkie-141102
|
||||||
@@ -503,7 +512,7 @@ public: // reszta może by?publiczna
|
|||||||
TButton btLampkaBocznik2;
|
TButton btLampkaBocznik2;
|
||||||
TButton btLampkaBocznik3;
|
TButton btLampkaBocznik3;
|
||||||
TButton btLampkaBocznik4;
|
TButton btLampkaBocznik4;
|
||||||
TButton btLampkaRadiotelefon;
|
TButton btLampkaRadiotelefon; // TODO: implement
|
||||||
TButton btLampkaHamienie;
|
TButton btLampkaHamienie;
|
||||||
TButton btLampkaBrakingOff;
|
TButton btLampkaBrakingOff;
|
||||||
TButton btLampkaED; // Stele 161228 hamowanie elektrodynamiczne
|
TButton btLampkaED; // Stele 161228 hamowanie elektrodynamiczne
|
||||||
|
|||||||
@@ -200,6 +200,8 @@ commanddescription_sequence Commands_descriptions = {
|
|||||||
{ "instrumentlighttoggle", command_target::vehicle },
|
{ "instrumentlighttoggle", command_target::vehicle },
|
||||||
{ "instrumentlightenable", command_target::vehicle },
|
{ "instrumentlightenable", command_target::vehicle },
|
||||||
{ "instrumentlightdisable", command_target::vehicle },
|
{ "instrumentlightdisable", command_target::vehicle },
|
||||||
|
{ "dshboardlighttoggle", command_target::vehicle },
|
||||||
|
{ "timetablelighttoggle", command_target::vehicle },
|
||||||
{ "generictoggle0", command_target::vehicle },
|
{ "generictoggle0", command_target::vehicle },
|
||||||
{ "generictoggle1", command_target::vehicle },
|
{ "generictoggle1", command_target::vehicle },
|
||||||
{ "generictoggle2", command_target::vehicle },
|
{ "generictoggle2", command_target::vehicle },
|
||||||
|
|||||||
@@ -193,6 +193,8 @@ enum class user_command {
|
|||||||
instrumentlighttoggle,
|
instrumentlighttoggle,
|
||||||
instrumentlightenable,
|
instrumentlightenable,
|
||||||
instrumentlightdisable,
|
instrumentlightdisable,
|
||||||
|
dashboardlighttoggle,
|
||||||
|
timetablelighttoggle,
|
||||||
generictoggle0,
|
generictoggle0,
|
||||||
generictoggle1,
|
generictoggle1,
|
||||||
generictoggle2,
|
generictoggle2,
|
||||||
|
|||||||
@@ -202,6 +202,8 @@ driverkeyboard_input::default_bindings() {
|
|||||||
{ user_command::instrumentlighttoggle, GLFW_KEY_SEMICOLON },
|
{ user_command::instrumentlighttoggle, GLFW_KEY_SEMICOLON },
|
||||||
// instrumentlightenable,
|
// instrumentlightenable,
|
||||||
// instrumentlightdisable,
|
// instrumentlightdisable,
|
||||||
|
// dashboardlighttoggle,
|
||||||
|
// timetablelighttoggle,
|
||||||
{ user_command::generictoggle0, GLFW_KEY_0 },
|
{ user_command::generictoggle0, GLFW_KEY_0 },
|
||||||
{ user_command::generictoggle1, GLFW_KEY_1 },
|
{ user_command::generictoggle1, GLFW_KEY_1 },
|
||||||
{ user_command::generictoggle2, GLFW_KEY_2 },
|
{ user_command::generictoggle2, GLFW_KEY_2 },
|
||||||
|
|||||||
@@ -676,6 +676,12 @@ drivermouse_input::default_bindings() {
|
|||||||
{ "instrumentlight_sw:", {
|
{ "instrumentlight_sw:", {
|
||||||
user_command::instrumentlighttoggle,
|
user_command::instrumentlighttoggle,
|
||||||
user_command::none } },
|
user_command::none } },
|
||||||
|
{ "dashboardlight_sw:", {
|
||||||
|
user_command::dashboardlighttoggle,
|
||||||
|
user_command::none } },
|
||||||
|
{ "timetablelight_sw:", {
|
||||||
|
user_command::timetablelighttoggle,
|
||||||
|
user_command::none } },
|
||||||
{ "cablight_sw:", {
|
{ "cablight_sw:", {
|
||||||
user_command::interiorlighttoggle,
|
user_command::interiorlighttoggle,
|
||||||
user_command::none } },
|
user_command::none } },
|
||||||
|
|||||||
@@ -139,6 +139,8 @@ init() {
|
|||||||
"door locking",
|
"door locking",
|
||||||
"current indicator source",
|
"current indicator source",
|
||||||
"instrument light",
|
"instrument light",
|
||||||
|
"dashboard light",
|
||||||
|
"timetable light",
|
||||||
"interior light",
|
"interior light",
|
||||||
"interior light dimmer",
|
"interior light dimmer",
|
||||||
"battery",
|
"battery",
|
||||||
@@ -271,6 +273,8 @@ init() {
|
|||||||
"sygnalizacja blokady drzwi",
|
"sygnalizacja blokady drzwi",
|
||||||
"prady drugiego czlonu",
|
"prady drugiego czlonu",
|
||||||
"oswietlenie przyrzadow",
|
"oswietlenie przyrzadow",
|
||||||
|
"oswietlenie pulpitu",
|
||||||
|
"oswietlenie rozkladu jazdy",
|
||||||
"oswietlenie kabiny",
|
"oswietlenie kabiny",
|
||||||
"przyciemnienie oswietlenia kabiny",
|
"przyciemnienie oswietlenia kabiny",
|
||||||
"bateria",
|
"bateria",
|
||||||
@@ -375,6 +379,8 @@ init() {
|
|||||||
"door_signalling_sw:",
|
"door_signalling_sw:",
|
||||||
"nextcurrent_sw:",
|
"nextcurrent_sw:",
|
||||||
"instrumentlight_sw:",
|
"instrumentlight_sw:",
|
||||||
|
"dashboardlight_sw:",
|
||||||
|
"timetablelight_sw:",
|
||||||
"cablight_sw:",
|
"cablight_sw:",
|
||||||
"cablightdim_sw:",
|
"cablightdim_sw:",
|
||||||
"battery_sw:",
|
"battery_sw:",
|
||||||
|
|||||||
@@ -128,6 +128,8 @@ enum string {
|
|||||||
cab_door_signalling_sw,
|
cab_door_signalling_sw,
|
||||||
cab_nextcurrent_sw,
|
cab_nextcurrent_sw,
|
||||||
cab_instrumentlight_sw,
|
cab_instrumentlight_sw,
|
||||||
|
cab_dashboardlight_sw,
|
||||||
|
cab_timetablelight_sw,
|
||||||
cab_cablight_sw,
|
cab_cablight_sw,
|
||||||
cab_cablightdim_sw,
|
cab_cablightdim_sw,
|
||||||
cab_battery_sw,
|
cab_battery_sw,
|
||||||
|
|||||||
Reference in New Issue
Block a user