mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2025-07-28 18:03:45 +02:00
Squashed commit of the following:
commit3ac2fff70d
Author: Asbelos <asbelos@btinternet.com> Date: Tue Jul 23 15:40:36 2024 +0100 Create momentum.md commita08195332f
Author: Asbelos <asbelos@btinternet.com> Date: Mon Jul 22 21:57:47 2024 +0100 Cleanup of DCC Class reminders commit002ec5f176
Author: Asbelos <asbelos@btinternet.com> Date: Mon Jul 22 12:42:43 2024 +0100 Cleaning access to speedByte commit854ddb0c6c
Author: Asbelos <asbelos@btinternet.com> Date: Sun Jul 21 10:15:07 2024 +0100 Fix momentum algorithm commit916d3baf63
Merge:ab72a75
27dc805
Author: Asbelos <asbelos@btinternet.com> Date: Fri Jul 19 10:14:06 2024 +0100 Merge branch 'devel' into devel_momentum commitab72a75d8f
Author: Asbelos <asbelos@btinternet.com> Date: Fri Jul 19 08:33:50 2024 +0100 EXRAIL MOMENTUM commit8a623aa1cb
Author: Asbelos <asbelos@btinternet.com> Date: Thu Jul 18 20:31:58 2024 +0100 Momentum
This commit is contained in:
@@ -68,7 +68,8 @@ Once a new OPCODE is decided upon, update this list.
|
||||
K, Reserved for future use - Potentially Railcom
|
||||
l, Loco speedbyte/function map broadcast
|
||||
L, Reserved for LCC interface (implemented in EXRAIL)
|
||||
m, message to throttles broadcast
|
||||
m, message to throttles (broadcast output)
|
||||
m, set momentum
|
||||
M, Write DCC packet
|
||||
n, Reserved for SensorCam
|
||||
N, Reserved for Sensorcam
|
||||
@@ -288,12 +289,9 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||
int16_t direction;
|
||||
|
||||
if (params==1) { // <t cab> display state
|
||||
int16_t slot=DCC::lookupSpeedTable(p[0],false);
|
||||
if (slot>=0)
|
||||
CommandDistributor::broadcastLoco(slot);
|
||||
else // send dummy state speed 0 fwd no functions.
|
||||
StringFormatter::send(stream,F("<l %d -1 128 0>\n"),p[0]);
|
||||
return;
|
||||
if (p[0]<=0) break;
|
||||
CommandDistributor::broadcastLoco(DCC::lookupSpeedTable(p[0],false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (params == 4)
|
||||
@@ -431,6 +429,11 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||
DCC::writeCVBitMain(p[0], p[1], p[2], p[3]);
|
||||
return;
|
||||
#endif
|
||||
|
||||
case 'm': // <m cabid momentum>
|
||||
if (params!=2) break;
|
||||
if (DCC::setMomentum(p[0],p[1])) return;
|
||||
break;
|
||||
|
||||
case 'M': // WRITE TRANSPARENT DCC PACKET MAIN <M REG X1 ... X9>
|
||||
#ifndef DISABLE_PROG
|
||||
@@ -580,7 +583,7 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||
}
|
||||
|
||||
case '!': // ESTOP ALL <!>
|
||||
DCC::setThrottle(0,1,1); // this broadcasts speed 1(estop) and sets all reminders to speed 1.
|
||||
DCC::estopAll(); // this broadcasts speed 1(estop) and sets all reminders to speed 1.
|
||||
return;
|
||||
|
||||
#ifdef HAS_ENOUGH_MEMORY
|
||||
|
Reference in New Issue
Block a user