diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index 0639aa40..0f17eb4e 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -628,6 +628,12 @@ result_t BusHandler::setState(BusState state, result_t result, bool firstRepetit logDebug(lf_bus, "%s during %s, switching to %s", getResultCode(result), getStateCode(m_state), getStateCode(state)); else if (m_currentRequest != NULL || state == bs_sendCmd || state == bs_sendResAck || state == bs_sendSyn) logDebug(lf_bus, "switching from %s to %s", getStateCode(m_state), getStateCode(state)); + + if (state == bs_noSignal) + logError(lf_bus, "signal lost"); + else if (m_state == bs_noSignal) + logNotice(lf_bus, "signal acquired"); + m_state = state; if (state == bs_ready || state == bs_skip) { diff --git a/src/ebusd/bushandler.h b/src/ebusd/bushandler.h index 2aee8d93..ff25a385 100644 --- a/src/ebusd/bushandler.h +++ b/src/ebusd/bushandler.h @@ -320,6 +320,12 @@ public: */ void formatScanResult(ostringstream& output); + /** + * Return true when a signal on the bus is available. + * @return true when a signal on the bus is available. + */ + bool hasSignal() { return m_state != bs_noSignal; } + private: /**