diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index fed9cd22..1cf20c12 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -139,7 +139,6 @@ bool ActiveBusRequest::notify(result_t result, SymbolString& slave) m_result = result; m_slave = SymbolString(slave, false, false); - m_finished = true; return false; } @@ -165,7 +164,6 @@ result_t BusHandler::sendAndWait(SymbolString& master, SymbolString& slave) L.log(bus, error, "%s, %s", getResultCode(result), sendRetries>0 ? "retry send" : ""); request->m_busLostRetries = 0; - request->m_finished = false; } delete request; @@ -243,7 +241,16 @@ result_t BusHandler::handleSymbol() case bs_recvCmd: case bs_recvCmdAck: + timeout = m_slaveRecvTimeout; + break; + case bs_recvRes: + if (m_response.size() > 0 || m_slaveRecvTimeout > SYN_TIMEOUT) + timeout = m_slaveRecvTimeout; + else + timeout = SYN_TIMEOUT; + break; + case bs_recvResAck: timeout = m_slaveRecvTimeout; break; diff --git a/src/ebusd/bushandler.h b/src/ebusd/bushandler.h index 47f70008..999e78e4 100644 --- a/src/ebusd/bushandler.h +++ b/src/ebusd/bushandler.h @@ -220,7 +220,7 @@ public: * @param slave reference to @a SymbolString for filling in the received slave data. */ ActiveBusRequest(SymbolString& master, SymbolString& slave) - : BusRequest(master, false), m_finished(false), m_result(RESULT_SYN), m_slave(slave) {} + : BusRequest(master, false), m_result(RESULT_SYN), m_slave(slave) {} /** * @brief Destructor. @@ -232,9 +232,6 @@ public: private: - /** true once the request is finished. */ - bool m_finished; - /** the result of handling the request. */ result_t m_result;