1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2025-07-28 09:53:45 +02:00

Fix <1 JOIN>

Fixed <1 JOIN> issue in TrackManager
This commit is contained in:
Colin Murdoch
2023-09-27 14:46:48 +01:00
parent 2a46b96083
commit 25bbfa4c68
4 changed files with 26 additions and 20 deletions

View File

@@ -589,8 +589,8 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
prog=false;
}
singletrack=true;
if (main) TrackManager::setTrackPower(false, POWERMODE::ON, t);
if (prog) TrackManager::setTrackPower(true, POWERMODE::ON, t);
if (main) TrackManager::setTrackPower(false, false, POWERMODE::ON, t);
if (prog) TrackManager::setTrackPower(true, false, POWERMODE::ON, t);
//CommandDistributor::broadcastPower();
//TrackManager::streamTrackState(stream, t);
TrackManager::streamTrackState(NULL,t);
@@ -603,8 +603,11 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
if (!singletrack) {
TrackManager::setJoin(join);
if (main) TrackManager::setMainPower(POWERMODE::ON);
if (prog) TrackManager::setProgPower(POWERMODE::ON);
if (join) TrackManager::setJoinPower(POWERMODE::ON);
else {
if (main) TrackManager::setMainPower(POWERMODE::ON);
if (prog) TrackManager::setProgPower(POWERMODE::ON);
}
CommandDistributor::broadcastPower();
return;
@@ -646,10 +649,10 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
}
singletrack=true;
TrackManager::setJoin(false);
if (main) TrackManager::setTrackPower(false, POWERMODE::OFF, t);
if (main) TrackManager::setTrackPower(false, false, POWERMODE::OFF, t);
if (prog) {
TrackManager::progTrackBoosted=false; // Prog track boost mode will not outlive prog track off
TrackManager::setTrackPower(true, POWERMODE::OFF, t);
TrackManager::setTrackPower(true, false, POWERMODE::OFF, t);
CommandDistributor::broadcastPower();
}
StringFormatter::send(stream, F("Track %d OFF\n"), t);