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

(commands) add epbrakecontrolenable and epbrakecontroldisable

This commit is contained in:
Marcin Nowak
2024-08-03 00:17:26 +02:00
parent 663ab0821c
commit 001ca76990
6 changed files with 44 additions and 0 deletions

View File

@@ -254,6 +254,8 @@ TTrain::commandhandler_map const TTrain::m_commandhandlers = {
{ user_command::autosandboxactivate, &TTrain::OnCommand_autosandboxactivate }, { user_command::autosandboxactivate, &TTrain::OnCommand_autosandboxactivate },
{ user_command::autosandboxdeactivate, &TTrain::OnCommand_autosandboxdeactivate }, { user_command::autosandboxdeactivate, &TTrain::OnCommand_autosandboxdeactivate },
{ user_command::epbrakecontroltoggle, &TTrain::OnCommand_epbrakecontroltoggle }, { user_command::epbrakecontroltoggle, &TTrain::OnCommand_epbrakecontroltoggle },
{ user_command::epbrakecontrolenable, &TTrain::OnCommand_epbrakecontrolenable },
{ user_command::epbrakecontroldisable, &TTrain::OnCommand_epbrakecontroldisable },
{ user_command::trainbrakeoperationmodeincrease, &TTrain::OnCommand_trainbrakeoperationmodeincrease }, { user_command::trainbrakeoperationmodeincrease, &TTrain::OnCommand_trainbrakeoperationmodeincrease },
{ user_command::trainbrakeoperationmodedecrease, &TTrain::OnCommand_trainbrakeoperationmodedecrease }, { user_command::trainbrakeoperationmodedecrease, &TTrain::OnCommand_trainbrakeoperationmodedecrease },
{ user_command::brakeactingspeedincrease, &TTrain::OnCommand_brakeactingspeedincrease }, { user_command::brakeactingspeedincrease, &TTrain::OnCommand_brakeactingspeedincrease },
@@ -1969,6 +1971,34 @@ void TTrain::OnCommand_autosandboxdeactivate(TTrain *Train, command_data const &
} }
}; };
void TTrain::OnCommand_epbrakecontrolenable( TTrain *Train, command_data const &Command ) {
auto const istoggle{ ( static_cast<int>( Train->ggEPFuseButton.type() ) & static_cast<int>( TGaugeType::toggle ) ) != 0 };
if( Command.action == GLFW_PRESS ) {
// command only works for bistable switch
if(istoggle) {
if( Train->mvOccupied->EpFuseSwitch( true ) ) {
// audio feedback
if( Train->dsbPneumaticSwitch ) {
Train->dsbPneumaticSwitch->play();
}
Train->ggEPFuseButton.UpdateValue(1.0f, Train->dsbSwitch);
};
}
}
}
void TTrain::OnCommand_epbrakecontroldisable( TTrain *Train, command_data const &Command ) {
auto const istoggle{ ( static_cast<int>( Train->ggEPFuseButton.type() ) & static_cast<int>( TGaugeType::toggle ) ) != 0 };
if( Command.action == GLFW_PRESS ) {
// command only works for bistable switch
if(istoggle) {
if( Train->mvOccupied->EpFuseSwitch( false ) ) {
Train->ggEPFuseButton.UpdateValue(0.0f, Train->dsbSwitch);
};
}
}
}
void TTrain::OnCommand_epbrakecontroltoggle( TTrain *Train, command_data const &Command ) { void TTrain::OnCommand_epbrakecontroltoggle( TTrain *Train, command_data const &Command ) {
if( Command.action == GLFW_REPEAT ) { return; } if( Command.action == GLFW_REPEAT ) { return; }

View File

@@ -277,6 +277,8 @@ class TTrain {
static void OnCommand_autosandboxactivate(TTrain *Train, command_data const &Command); static void OnCommand_autosandboxactivate(TTrain *Train, command_data const &Command);
static void OnCommand_autosandboxdeactivate(TTrain *Train, command_data const &Command); static void OnCommand_autosandboxdeactivate(TTrain *Train, command_data const &Command);
static void OnCommand_epbrakecontroltoggle( TTrain *Train, command_data const &Command ); static void OnCommand_epbrakecontroltoggle( TTrain *Train, command_data const &Command );
static void OnCommand_epbrakecontrolenable( TTrain *Train, command_data const &Command );
static void OnCommand_epbrakecontroldisable( TTrain *Train, command_data const &Command );
static void OnCommand_trainbrakeoperationmodeincrease(TTrain *Train, command_data const &Command); static void OnCommand_trainbrakeoperationmodeincrease(TTrain *Train, command_data const &Command);
static void OnCommand_trainbrakeoperationmodedecrease(TTrain *Train, command_data const &Command); static void OnCommand_trainbrakeoperationmodedecrease(TTrain *Train, command_data const &Command);
static void OnCommand_brakeactingspeedincrease( TTrain *Train, command_data const &Command ); static void OnCommand_brakeactingspeedincrease( TTrain *Train, command_data const &Command );

View File

@@ -120,6 +120,8 @@ commanddescription_sequence Commands_descriptions = {
{ "universalrelayreset3", command_target::vehicle, command_mode::oneoff }, { "universalrelayreset3", command_target::vehicle, command_mode::oneoff },
{ "notchingrelaytoggle", command_target::vehicle, command_mode::oneoff }, { "notchingrelaytoggle", command_target::vehicle, command_mode::oneoff },
{ "epbrakecontroltoggle", command_target::vehicle, command_mode::oneoff }, { "epbrakecontroltoggle", command_target::vehicle, command_mode::oneoff },
{ "epbrakecontrolenable", command_target::vehicle, command_mode::oneoff },
{ "epbrakecontroldisable", command_target::vehicle, command_mode::oneoff },
{ "trainbrakeoperationmodeincrease", command_target::vehicle, command_mode::oneoff }, { "trainbrakeoperationmodeincrease", command_target::vehicle, command_mode::oneoff },
{ "trainbrakeoperationmodedecrease", command_target::vehicle, command_mode::oneoff }, { "trainbrakeoperationmodedecrease", command_target::vehicle, command_mode::oneoff },
{ "brakeactingspeedincrease", command_target::vehicle, command_mode::oneoff }, { "brakeactingspeedincrease", command_target::vehicle, command_mode::oneoff },

View File

@@ -113,6 +113,8 @@ enum class user_command {
universalrelayreset3, universalrelayreset3,
notchingrelaytoggle, notchingrelaytoggle,
epbrakecontroltoggle, epbrakecontroltoggle,
epbrakecontrolenable,
epbrakecontroldisable,
trainbrakeoperationmodeincrease, trainbrakeoperationmodeincrease,
trainbrakeoperationmodedecrease, trainbrakeoperationmodedecrease,
brakeactingspeedincrease, brakeactingspeedincrease,

View File

@@ -122,6 +122,8 @@ driverkeyboard_input::default_bindings() {
// universalrelayreset3, // universalrelayreset3,
{ user_command::notchingrelaytoggle, {GLFW_KEY_G, ""} }, { user_command::notchingrelaytoggle, {GLFW_KEY_G, ""} },
{ user_command::epbrakecontroltoggle, {GLFW_KEY_Z | keymodifier::control, ""} }, { user_command::epbrakecontroltoggle, {GLFW_KEY_Z | keymodifier::control, ""} },
// epbrakecontrolenable
// epbrakecontroldisable
{ user_command::trainbrakeoperationmodeincrease, {GLFW_KEY_KP_2 | keymodifier::control, ""} }, { user_command::trainbrakeoperationmodeincrease, {GLFW_KEY_KP_2 | keymodifier::control, ""} },
{ user_command::trainbrakeoperationmodedecrease, {GLFW_KEY_KP_8 | keymodifier::control, ""} }, { user_command::trainbrakeoperationmodedecrease, {GLFW_KEY_KP_8 | keymodifier::control, ""} },
{ user_command::brakeactingspeedincrease, {GLFW_KEY_B | keymodifier::shift, ""} }, { user_command::brakeactingspeedincrease, {GLFW_KEY_B | keymodifier::shift, ""} },

View File

@@ -638,6 +638,12 @@ drivermouse_input::default_bindings() {
{ "epbrake_bt:",{ { "epbrake_bt:",{
user_command::epbrakecontroltoggle, user_command::epbrakecontroltoggle,
user_command::none } }, user_command::none } },
{ "epbrakeon_bt:",{
user_command::epbrakecontrolenable,
user_command::none } },
{ "epbrakeoff_bt:",{
user_command::epbrakecontroldisable,
user_command::none } },
{ "sand_bt:", { { "sand_bt:", {
user_command::sandboxactivate, user_command::sandboxactivate,
user_command::none } }, user_command::none } },