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

separate cabsignal acknowledge

This commit is contained in:
milek7
2019-03-16 17:50:17 +01:00
parent e3c88b9834
commit 20652829b1
6 changed files with 26 additions and 3 deletions

View File

@@ -572,6 +572,7 @@ class TSecuritySystem
bool pressed = false;
bool enabled = false;
bool is_sifa = false; // Sifa-like pedal device, with inverted input for convenient keyboard usage
bool separate_acknowledge = false; // cabsignal reset button is separate from vigilance
double vigilance_timer = 0.0;
double alert_timer = 0.0;
@@ -589,6 +590,7 @@ public:
void set_enabled(bool e);
void acknowledge_press();
void acknowledge_release();
void cabsignal_reset();
void update(double dt, double Vel);
void set_cabsignal();
bool is_blinking() const;

View File

@@ -82,7 +82,7 @@ int DirF(int CouplerN)
void TSecuritySystem::set_enabled(bool e) {
if (vigilance_enabled || cabsignal_enabled)
enabled = e;
if (enabled && cabsignal_enabled && !is_sifa) {
if (enabled && cabsignal_enabled) {
cabsignal_active = true;
alert_timer = SoundSignalDelay;
}
@@ -91,14 +91,15 @@ void TSecuritySystem::set_enabled(bool e) {
void TSecuritySystem::acknowledge_press() {
pressed = true;
if (cabsignal_active) {
if (!separate_acknowledge && cabsignal_active) {
cabsignal_active = false;
alert_timer = 0.0;
return;
}
vigilance_timer = 0.0;
if (vigilance_timer > AwareDelay)
alert_timer = 0.0;
vigilance_timer = 0.0;
}
void TSecuritySystem::acknowledge_release() {
@@ -108,6 +109,13 @@ void TSecuritySystem::acknowledge_release() {
alert_timer = 0.0;
}
void TSecuritySystem::cabsignal_reset() {
if (cabsignal_active) {
cabsignal_active = false;
alert_timer = 0.0;
}
}
void TSecuritySystem::update(double dt, double vel) {
if (!enabled) {
cabsignal_active = false;
@@ -176,6 +184,8 @@ void TSecuritySystem::load(std::string const &line, double Vmax) {
cabsignal_enabled = true;
if( awaresystem.find( "Sifa" ) != std::string::npos )
is_sifa = true;
if( awaresystem.find( "SeparateAcknowledge" ) != std::string::npos )
separate_acknowledge = true;
extract_value( AwareDelay, "AwareDelay", line, "" );
AwareMinSpeed = 0.1 * Vmax; //domyślnie 10% Vmax

View File

@@ -215,6 +215,7 @@ TTrain::commandhandler_map const TTrain::m_commandhandlers = {
{ user_command::reverserneutral, &TTrain::OnCommand_reverserneutral },
{ user_command::reverserbackward, &TTrain::OnCommand_reverserbackward },
{ user_command::alerteracknowledge, &TTrain::OnCommand_alerteracknowledge },
{ user_command::cabsignalacknowledge, &TTrain::OnCommand_cabsignalacknowledge },
{ user_command::batterytoggle, &TTrain::OnCommand_batterytoggle },
{ user_command::batteryenable, &TTrain::OnCommand_batteryenable },
{ user_command::batterydisable, &TTrain::OnCommand_batterydisable },
@@ -1730,6 +1731,13 @@ void TTrain::OnCommand_alerteracknowledge( TTrain *Train, command_data const &Co
}
}
void TTrain::OnCommand_cabsignalacknowledge( TTrain *Train, command_data const &Command ) {
// TODO: visual feedback
if( Command.action == GLFW_PRESS ) {
Train->mvOccupied->SecuritySystem.cabsignal_reset();
}
}
void TTrain::OnCommand_batterytoggle( TTrain *Train, command_data const &Command )
{
if( Command.action == GLFW_PRESS ) {

View File

@@ -219,6 +219,7 @@ class TTrain
static void OnCommand_reverserneutral( TTrain *Train, command_data const &Command );
static void OnCommand_reverserbackward( TTrain *Train, command_data const &Command );
static void OnCommand_alerteracknowledge( TTrain *Train, command_data const &Command );
static void OnCommand_cabsignalacknowledge( TTrain *Train, command_data const &Command );
static void OnCommand_batterytoggle( TTrain *Train, command_data const &Command );
static void OnCommand_batteryenable( TTrain *Train, command_data const &Command );
static void OnCommand_batterydisable( TTrain *Train, command_data const &Command );

View File

@@ -116,6 +116,7 @@ commanddescription_sequence Commands_descriptions = {
{ "brakeloadcompensationdecrease", command_target::vehicle, command_mode::oneoff },
{ "mubrakingindicatortoggle", command_target::vehicle, command_mode::oneoff },
{ "alerteracknowledge", command_target::vehicle, command_mode::oneoff },
{ "cabsignalacknowledge", command_target::vehicle, command_mode::oneoff },
{ "hornlowactivate", command_target::vehicle, command_mode::oneoff },
{ "hornhighactivate", command_target::vehicle, command_mode::oneoff },
{ "whistleactivate", command_target::vehicle, command_mode::oneoff },

View File

@@ -110,6 +110,7 @@ enum class user_command {
brakeloadcompensationdecrease,
mubrakingindicatortoggle,
alerteracknowledge,
cabsignalacknowledge,
hornlowactivate,
hornhighactivate,
whistleactivate,