diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index 87e031c5..36587f0a 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -438,6 +438,10 @@ result_t BusHandler::handleSymbol() { case bs_skip: timeout = SYN_TIMEOUT; + case bs_ready: + if (m_currentRequest != nullptr) { + setState(bs_ready, RESULT_ERR_TIMEOUT); // just to be sure an old BusRequest is cleaned up + } if (!m_device->isArbitrating() && m_currentRequest == nullptr && m_remainLockCount == 0) { BusRequest* startRequest = m_nextRequests.peek(); if (startRequest == nullptr && m_pollInterval > 0) { // check for poll/scan @@ -474,12 +478,6 @@ result_t BusHandler::handleSymbol() { } break; - case bs_ready: - if (m_currentRequest != nullptr) { - setState(bs_ready, RESULT_ERR_TIMEOUT); // just to be sure an old BusRequest is cleaned up - } - break; - case bs_recvCmd: case bs_recvCmdCrc: timeout = m_slaveRecvTimeout;