1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-30 03:26:13 +01:00

Make <s> output turnout state rather than full turnout definition.

<s> command currently prints the current states for outputs and for sensors, but prints the full configuration of turnouts.  This change makes the turnout output consistent, i.e. just <H id state> is output for each turnout.  The <T> command still outputs the full turnout definition.
This commit is contained in:
Neil McKechnie 2021-08-21 00:25:00 +01:00
parent 133c65bc42
commit d8366f33c8
2 changed files with 6 additions and 4 deletions

View File

@ -194,9 +194,7 @@
// Display, on the specified stream, the current state of the turnout (1 or 0). // Display, on the specified stream, the current state of the turnout (1 or 0).
void Turnout::printState(uint16_t id, Print *stream) { void Turnout::printState(uint16_t id, Print *stream) {
Turnout *tt = get(id); Turnout *tt = get(id);
if (!tt) if (!tt) tt->printState(stream);
StringFormatter::send(stream, F("<H %d %d>\n"),
id, tt->_turnoutData.closed ^ useLegacyTurnoutBehaviour);
} }
#endif #endif

View File

@ -119,6 +119,10 @@ public:
inline bool isType(uint8_t type) { return _turnoutData.turnoutType == type; } inline bool isType(uint8_t type) { return _turnoutData.turnoutType == type; }
inline uint16_t getId() { return _turnoutData.id; } inline uint16_t getId() { return _turnoutData.id; }
inline Turnout *next() { return _nextTurnout; } inline Turnout *next() { return _nextTurnout; }
inline void printState(Print *stream) {
StringFormatter::send(stream, F("<H %d %d>\n"),
_turnoutData.id, _turnoutData.closed ^ useLegacyTurnoutBehaviour);
}
/* /*
* Virtual functions * Virtual functions
*/ */
@ -170,7 +174,7 @@ public:
static void printAll(Print *stream) { static void printAll(Print *stream) {
for (Turnout *tt = _firstTurnout; tt != 0; tt = tt->_nextTurnout) for (Turnout *tt = _firstTurnout; tt != 0; tt = tt->_nextTurnout)
tt->print(stream); tt->printState(stream);
} }
static void printState(uint16_t id, Print *stream); static void printState(uint16_t id, Print *stream);