mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-17 23:39:18 +02:00
(commands) add epbrakecontrolenable and epbrakecontroldisable
This commit is contained in:
30
Train.cpp
30
Train.cpp
@@ -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; }
|
||||||
|
|||||||
2
Train.h
2
Train.h
@@ -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 );
|
||||||
|
|||||||
@@ -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 },
|
||||||
|
|||||||
@@ -113,6 +113,8 @@ enum class user_command {
|
|||||||
universalrelayreset3,
|
universalrelayreset3,
|
||||||
notchingrelaytoggle,
|
notchingrelaytoggle,
|
||||||
epbrakecontroltoggle,
|
epbrakecontroltoggle,
|
||||||
|
epbrakecontrolenable,
|
||||||
|
epbrakecontroldisable,
|
||||||
trainbrakeoperationmodeincrease,
|
trainbrakeoperationmodeincrease,
|
||||||
trainbrakeoperationmodedecrease,
|
trainbrakeoperationmodedecrease,
|
||||||
brakeactingspeedincrease,
|
brakeactingspeedincrease,
|
||||||
|
|||||||
@@ -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, ""} },
|
||||||
|
|||||||
@@ -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 } },
|
||||||
|
|||||||
Reference in New Issue
Block a user