From 939cb4838ae6eac508bb16a2e52e9fa7cd9a26b3 Mon Sep 17 00:00:00 2001 From: c-jimenez <18682655+c-jimenez@users.noreply.github.com> Date: Sun, 1 Oct 2023 17:14:23 +0200 Subject: [PATCH] [chargepoint] Change connector 0 state to Available when previously Reserved and a transaction is started on 1 of the connectors --- src/chargepoint/ChargePoint.cpp | 1 + src/chargepoint/transaction/TransactionManager.cpp | 5 +++++ src/chargepoint/transaction/TransactionManager.h | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/src/chargepoint/ChargePoint.cpp b/src/chargepoint/ChargePoint.cpp index 5a8ff346..96515056 100644 --- a/src/chargepoint/ChargePoint.cpp +++ b/src/chargepoint/ChargePoint.cpp @@ -292,6 +292,7 @@ bool ChargePoint::start() *m_msg_dispatcher, *m_msg_sender, m_requests_fifo, + *m_status_manager, *m_authent_manager, *m_reservation_manager, *m_meter_values_manager, diff --git a/src/chargepoint/transaction/TransactionManager.cpp b/src/chargepoint/transaction/TransactionManager.cpp index 95b7ef44..a4e662e8 100644 --- a/src/chargepoint/transaction/TransactionManager.cpp +++ b/src/chargepoint/transaction/TransactionManager.cpp @@ -46,6 +46,7 @@ TransactionManager::TransactionManager(ocpp::config::IOcppConfig& ocpp::messages::IMessageDispatcher& msg_dispatcher, ocpp::messages::GenericMessageSender& msg_sender, ocpp::messages::IRequestFifo& requests_fifo, + IStatusManager& status_manager, IAuthentManager& authent_manager, ReservationManager& reservation_manager, IMeterValuesManager& meter_values_manager, @@ -56,6 +57,7 @@ TransactionManager::TransactionManager(ocpp::config::IOcppConfig& m_events_handler(events_handler), m_connectors(connectors), m_msg_sender(msg_sender), + m_status_manager(status_manager), m_authent_manager(authent_manager), m_reservation_manager(reservation_manager), m_meter_values_manager(meter_values_manager), @@ -121,6 +123,9 @@ ocpp::types::AuthorizationStatus TransactionManager::startTransaction(unsigned i // Clear reservation m_reservation_manager.clearReservation(connector_id); + + // Reset charge point status to Available + m_status_manager.updateConnectorStatus(Connectors::CONNECTOR_ID_CHARGE_POINT, ChargePointStatus::Available); } } } diff --git a/src/chargepoint/transaction/TransactionManager.h b/src/chargepoint/transaction/TransactionManager.h index 9c352c7c..a0b059f2 100644 --- a/src/chargepoint/transaction/TransactionManager.h +++ b/src/chargepoint/transaction/TransactionManager.h @@ -49,6 +49,7 @@ class ReservationManager; class IChargePointEventsHandler; class IMeterValuesManager; class ISmartChargingManager; +class IStatusManager; /** @brief Handle charge point transaction requests */ class TransactionManager @@ -64,6 +65,7 @@ class TransactionManager ocpp::messages::IMessageDispatcher& msg_dispatcher, ocpp::messages::GenericMessageSender& msg_sender, ocpp::messages::IRequestFifo& requests_fifo, + IStatusManager& status_manager, IAuthentManager& authent_manager, ReservationManager& reservation_manager, IMeterValuesManager& meter_values_manager, @@ -120,6 +122,8 @@ class TransactionManager Connectors& m_connectors; /** @brief Message sender */ ocpp::messages::GenericMessageSender& m_msg_sender; + /** @brief Status manager */ + IStatusManager& m_status_manager; /** @brief Authentication manager */ IAuthentManager& m_authent_manager; /** @brief Reservation manager */