diff --git a/EXRAIL2.cpp b/EXRAIL2.cpp index b767d17..8e6a6b5 100644 --- a/EXRAIL2.cpp +++ b/EXRAIL2.cpp @@ -332,7 +332,7 @@ void RMFT2::setTurntableHiddenState(Turntable * tto) { char RMFT2::getRouteType(int16_t id) { int16_t progCounter=routeLookup->find(id); if (progCounter>=0) { - OPCODE type=GET_OPCODE; + byte type=GET_OPCODE; if (type==OPCODE_ROUTE) return 'R'; if (type==OPCODE_AUTOMATION) return 'A'; } diff --git a/EXRAIL2Parser.cpp b/EXRAIL2Parser.cpp index 7670118..7b241d0 100644 --- a/EXRAIL2Parser.cpp +++ b/EXRAIL2Parser.cpp @@ -122,7 +122,7 @@ void RMFT2::ComandFilter(Print * stream, byte & opcode, byte & paramCount, int16 case 'J': // throttle info commands // This entire code block is compiled out if FEATURE_ROUTESTATE macros not used - if (paramCount<1 || !(compileFeatures & FEATURE_ROUTESTATE)) return; + if (paramCount<1) return; switch(p[0]) case HASH_KEYWORD_A: // returns automations/routes if (paramCount==1) {// @@ -136,14 +136,16 @@ void RMFT2::ComandFilter(Print * stream, byte & opcode, byte & paramCount, int16 uint16_t id=p[1]; StringFormatter::send(stream,F("\n"), id, getRouteType(id), getRouteDescription(id)); - - // Send any non-default button states or captions - int16_t statePos=routeLookup->findPosition(id); - if (statePos>=0) { - if (routeStateArray[statePos]) - StringFormatter::send(stream,F("\n"), id, routeStateArray[statePos]); - if (routeCaptionArray[statePos]) - StringFormatter::send(stream,F("\n"), id,routeCaptionArray[statePos]); + + if (compileFeatures & FEATURE_ROUTESTATE) { + // Send any non-default button states or captions + int16_t statePos=routeLookup->findPosition(id); + if (statePos>=0) { + if (routeStateArray[statePos]) + StringFormatter::send(stream,F("\n"), id, routeStateArray[statePos]); + if (routeCaptionArray[statePos]) + StringFormatter::send(stream,F("\n"), id,routeCaptionArray[statePos]); + } } opcode=0; return; diff --git a/MotorDriver.cpp b/MotorDriver.cpp index c9b820e..bd25be4 100644 --- a/MotorDriver.cpp +++ b/MotorDriver.cpp @@ -680,8 +680,10 @@ void MotorDriver::checkPowerOverload(bool useProgLimit, byte trackno) { power_sample_overload_wait *= 2; if (power_sample_overload_wait > POWER_SAMPLE_RETRY_MAX) power_sample_overload_wait = POWER_SAMPLE_RETRY_MAX; + #ifdef EXRAIL_ACTIVE DIAG(F("Calling EXRAIL")); RMFT2::powerEvent(trackno, true); // Tell EXRAIL we have an overload + #endif // power on test DIAG(F("TRACK %c POWER RESTORE (after %4M)"), trackno + 'A', mslpc); setPower(POWERMODE::ALERT);