         // Got plausible input so keep the CLI awake a little longer.
         OTV0P2BASE::CLI::resetCLIActiveTimer();
         // Process the input received, with action based on the first char...
-        bool showStatus = true; // Default to showing status.
         switch(buf[0])
         {
             // Explicit request for help, or unrecognised first character.
             // Not implemented so indicate unrecognised input.
-            default: case '?': { OTV0P2BASE::CLI::InvalidIgnored(); Serial.println(); showStatus = false; break; }
+            default: case '?': { OTV0P2BASE::CLI::InvalidIgnored(); Serial.println(); break; }
             // Exit/deactivate CLI immediately.
             // This should be followed by JUST CR ('\r') OR LF ('\n')
             // else the second will wake the CLI up again.
             case 'E': { OTV0P2BASE::CLI::makeCLIInactive(); break; }
             // Reset or display ID.
-            case 'I': { showStatus = OTV0P2BASE::CLI::NodeID().doCommand(buf, n); break; }
+            case 'I': { OTV0P2BASE::CLI::NodeID().doCommand(buf, n); break; }
             // Status line stats print and TX.
             case 'S':
             {

                DEBUG_SERIAL_PRINTLN();
            }
#endif
            // Show current status if appropriate.
//            if(runAll) { showStatus = true; }  // TODO
            // Age errors/warnings.
            OTV0P2BASE::ErrorReporter.read();
            break;

    // TODO: try to ensure that OTRFM23BLink.handleInterruptSimple() is inlineable to minimise ISR prologue/epilogue time and space.
    if((changes & RFM23B_INT_MASK) && !(pins & RFM23B_INT_MASK))
        { PrimaryRadio.handleInterruptSimple(); }
}

// Previous state of port D pins to help detect changes.
static volatile uint8_t prevStatePD;
// Interrupt service routine for PD I/O port transition changes (including RX).
ISR(PCINT2_vect)
{
    const uint8_t pins = PIND;
    const uint8_t changes = pins ^ prevStatePD;
    prevStatePD = pins;

    // If an interrupt arrived from the serial RX then wake up the CLI.
    // Use a nominally rising edge to avoid spurious trigger when other interrupts are handled.
    // The will ensure that it is possible to wake the CLI subsystem with an extra CR or LF.
    // It is OK to trigger this from other things such as button presses.
    // TODO: ensure that resetCLIActiveTimer() is inlineable to minimise ISR prologue/epilogue time and space.
    if((changes & SERIALRX_INT_MASK) && !(pins & SERIALRX_INT_MASK))
    { OTV0P2BASE::CLI::resetCLIActiveTimer(); }
}


