1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-23 08:06:13 +01:00

Tidy and version

This commit is contained in:
Asbelos 2024-02-16 12:36:33 +00:00
parent 5742b71ec6
commit 7ee4188d88
4 changed files with 21 additions and 9 deletions

View File

@ -387,16 +387,13 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
case 'A': // EXTENDED ACCESSORY <A address value> case 'A': // EXTENDED ACCESSORY <A address value>
{ {
// Note: if this happens to match a defined EXRAIL
// DCCX_SIGNAL, then EXRAIL will have intercepted
// this command alrerady.
if (params!=2) break; if (params!=2) break;
if (p[0] != (p[0] & 0x7F)) break; if (p[0] != (p[0] & 0x7F)) break;
if (p[1] != (p[1] & 0x1F)) break; if (p[1] != (p[1] & 0x1F)) break;
#ifdef EXRAIL_ACTIVE DCC::setExtendedAccessory(p[0],p[1]);
// Ask exrail if this is just changing the aspect on a
// predefined DCCX_SIGNAL. Because this will handle all
// the IFRED and ONRED type issues at the same time.
if (RMFT2::signalAspectEvent(p[0],p[1])) return;
#endif
DCC::setExtendedAccessory(p[0],p[1],3);
} }
return; return;

View File

@ -802,7 +802,10 @@ void RMFT2::loop2() {
} }
case OPCODE_ASPECT: { case OPCODE_ASPECT: {
// operand is address<<5 | value // operand is address<<5 | value
DCC::setExtendedAccessory(operand>>5, operand & 0x1F); int16_t address=operand>>5;
byte aspect=operand & 0x1f;
if (!signalAspectEvent(address,aspect))
DCC::setExtendedAccessory(address,aspect);
break; break;
} }

View File

@ -51,6 +51,14 @@ void RMFT2::ComandFilter(Print * stream, byte & opcode, byte & paramCount, int16
opcode=0; opcode=0;
break; break;
case 'A': // <A address aspect>
if (paramCount!=2) break;
// Ask exrail if this is just changing the aspect on a
// predefined DCCX_SIGNAL. Because this will handle all
// the IFRED and ONRED type issues at the same time.
if (signalAspectEvent(p[0],p[1])) opcode=0; // all done
break;
case 'L': case 'L':
// This entire code block is compiled out if LLC macros not used // This entire code block is compiled out if LLC macros not used
if (!(compileFeatures & FEATURE_LCC)) return; if (!(compileFeatures & FEATURE_LCC)) return;

View File

@ -3,7 +3,11 @@
#include "StringFormatter.h" #include "StringFormatter.h"
#define VERSION "5.2.33" #define VERSION "5.2.34"
// 5.2.34 - <A address aspect> Command fopr DCC Extended Accessories
// - Exrail ASPECT(address,aspect) for above.
// - EXRAIL DCCX_SIGNAL(Address,redAspect,amberAspect,greenAspect)
// - Exrail intercept <A ...> for DCC Signals.
// 5.2.33 - Exrail CONFIGURE_SERVO(vpin,pos1,pos2,profile) // 5.2.33 - Exrail CONFIGURE_SERVO(vpin,pos1,pos2,profile)
// 5.2.32 - Railcom Cutout (Initial trial Mega2560 only) // 5.2.32 - Railcom Cutout (Initial trial Mega2560 only)
// 5.2.31 - Exrail JMRI_SENSOR(vpin [,count]) creates <S> types. // 5.2.31 - Exrail JMRI_SENSOR(vpin [,count]) creates <S> types.