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

Merge pull request #67 from marcinn/new-uart-functions

(commands) add epbrakecontrolenable and epbrakecontroldisable
This commit is contained in:
Ryba04
2024-09-14 14:33:10 +02:00
committed by GitHub
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::autosandboxdeactivate, &TTrain::OnCommand_autosandboxdeactivate },
{ 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::trainbrakeoperationmodedecrease, &TTrain::OnCommand_trainbrakeoperationmodedecrease },
{ user_command::brakeactingspeedincrease, &TTrain::OnCommand_brakeactingspeedincrease },
@@ -1963,6 +1965,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 ) {
if( Command.action == GLFW_REPEAT ) { return; }

View File

@@ -275,6 +275,8 @@ class TTrain {
static void OnCommand_autosandboxactivate(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_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_trainbrakeoperationmodedecrease(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 },
{ "notchingrelaytoggle", 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 },
{ "trainbrakeoperationmodedecrease", command_target::vehicle, command_mode::oneoff },
{ "brakeactingspeedincrease", command_target::vehicle, command_mode::oneoff },

View File

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

View File

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

View File

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