From a9ae9bd7cebc93d5752007a3137ca7e906ff0b8e Mon Sep 17 00:00:00 2001 From: c-jimenez <18682655+c-jimenez@users.noreply.github.com> Date: Wed, 15 Mar 2023 16:58:49 +0100 Subject: [PATCH] =?UTF-8?q?[chargepoint]=C2=A0Fix=20stop=20process?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chargepoint/ChargePoint.cpp | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/chargepoint/ChargePoint.cpp b/src/chargepoint/ChargePoint.cpp index 07a5866a..11615789 100644 --- a/src/chargepoint/ChargePoint.cpp +++ b/src/chargepoint/ChargePoint.cpp @@ -365,6 +365,9 @@ bool ChargePoint::stop() m_uptime_timer.stop(); saveUptime(); + // Stop connection + ret = m_rpc_client->stop(); + // Stop managers m_config_manager.reset(); m_authent_manager.reset(); @@ -379,9 +382,6 @@ bool ChargePoint::stop() m_requests_fifo_manager.reset(); m_iso15118_manager.reset(); - // Stop connection - ret = m_rpc_client->stop(); - // Stop security manager m_security_manager.stop(); @@ -935,10 +935,14 @@ void ChargePoint::rpcClientFailed() /** @copydoc void IRpc::IListener::rpcDisconnected() */ void ChargePoint::rpcDisconnected() { - LOG_ERROR << "Connection lost with Central System"; - m_status_manager->updateConnectionStatus(false); - m_requests_fifo_manager->updateConnectionStatus(false); - m_events_handler.connectionStateChanged(false); + // Check if stop is in progress + if (m_uptime_timer.isStarted()) + { + LOG_ERROR << "Connection lost with Central System"; + m_status_manager->updateConnectionStatus(false); + m_requests_fifo_manager->updateConnectionStatus(false); + m_events_handler.connectionStateChanged(false); + } } /** @copydoc void IRpc::IListener::rpcError() */ @@ -958,7 +962,13 @@ bool ChargePoint::rpcCallReceived(const std::string& action, std::string& error_code, std::string& error_message) { - return m_msg_dispatcher->dispatchMessage(action, payload, response, error_code, error_message); + bool ret = false; + // Check if stop is in progress + if (m_uptime_timer.isStarted()) + { + ret = m_msg_dispatcher->dispatchMessage(action, payload, response, error_code, error_message); + } + return ret; } /** @copydoc void IRpc::ISpy::rcpMessageReceived(const std::string&) */