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

build 180309. additional control commands, serial port output fix

This commit is contained in:
tmj-fstate
2018-03-09 19:31:19 +01:00
parent 5d60080084
commit 0bf9d233aa
13 changed files with 84 additions and 16 deletions

View File

@@ -203,6 +203,9 @@ TTrain::commandhandler_map const TTrain::m_commandhandlers = {
{ user_command::mubrakingindicatortoggle, &TTrain::OnCommand_mubrakingindicatortoggle },
{ user_command::reverserincrease, &TTrain::OnCommand_reverserincrease },
{ user_command::reverserdecrease, &TTrain::OnCommand_reverserdecrease },
{ user_command::reverserforward, &TTrain::OnCommand_reverserforward },
{ user_command::reverserneutral, &TTrain::OnCommand_reverserneutral },
{ user_command::reverserbackward, &TTrain::OnCommand_reverserbackward },
{ user_command::alerteracknowledge, &TTrain::OnCommand_alerteracknowledge },
{ user_command::batterytoggle, &TTrain::OnCommand_batterytoggle },
{ user_command::batteryenable, &TTrain::OnCommand_batteryenable },
@@ -1394,6 +1397,61 @@ void TTrain::OnCommand_reverserdecrease( TTrain *Train, command_data const &Comm
}
}
void TTrain::OnCommand_reverserforward( TTrain *Train, command_data const &Command ) {
if( Command.action == GLFW_PRESS ) {
if( Train->mvOccupied->ActiveDir < 1 ) {
while( ( Train->mvOccupied->ActiveDir < 1 )
&& ( true == Train->mvOccupied->DirectionForward() ) ) {
// all work is done in the header
}
// aktualizacja skrajnych pojazdów w składzie
if( ( Train->mvOccupied->ActiveDir == 1 )
&& ( Train->DynamicObject->Mechanik ) ) {
Train->DynamicObject->Mechanik->CheckVehicles( Change_direction );
}
}
}
}
void TTrain::OnCommand_reverserneutral( TTrain *Train, command_data const &Command ) {
if( Command.action == GLFW_PRESS ) {
while( ( Train->mvOccupied->ActiveDir < 0 )
&& ( true == Train->mvOccupied->DirectionForward() ) ) {
// all work is done in the header
}
while( ( Train->mvOccupied->ActiveDir > 0 )
&& ( true == Train->mvOccupied->DirectionBackward() ) ) {
// all work is done in the header
}
}
}
void TTrain::OnCommand_reverserbackward( TTrain *Train, command_data const &Command ) {
if( Command.action == GLFW_PRESS ) {
if( Train->mvOccupied->ActiveDir > -1 ) {
while( ( Train->mvOccupied->ActiveDir > -1 )
&& ( true == Train->mvOccupied->DirectionBackward() ) ) {
// all work is done in the header
}
// aktualizacja skrajnych pojazdów w składzie
if( ( Train->mvOccupied->ActiveDir == -1 )
&& ( Train->DynamicObject->Mechanik ) ) {
Train->DynamicObject->Mechanik->CheckVehicles( Change_direction );
}
}
}
}
void TTrain::OnCommand_alerteracknowledge( TTrain *Train, command_data const &Command ) {
if( Command.action == GLFW_PRESS ) {