diff --git a/examples/ocpp16/common/DefaultChargePointEventsHandler.cpp b/examples/ocpp16/common/DefaultChargePointEventsHandler.cpp index 8f26f4fe..662ed619 100644 --- a/examples/ocpp16/common/DefaultChargePointEventsHandler.cpp +++ b/examples/ocpp16/common/DefaultChargePointEventsHandler.cpp @@ -248,10 +248,10 @@ std::string DefaultChargePointEventsHandler::getDiagnostics(const ocpp::types::O return diag_file; } -/** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested() */ -std::string DefaultChargePointEventsHandler::updateFirmwareRequested() +/** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested(const std::string&) */ +std::string DefaultChargePointEventsHandler::updateFirmwareRequested(const std::string& url) { - cout << "Firmware update requested" << endl; + cout << "Firmware update requested from: " << url << endl; return "/tmp/firmware.tar.gz"; } diff --git a/examples/ocpp16/common/DefaultChargePointEventsHandler.h b/examples/ocpp16/common/DefaultChargePointEventsHandler.h index ddfeee00..e4e19c09 100644 --- a/examples/ocpp16/common/DefaultChargePointEventsHandler.h +++ b/examples/ocpp16/common/DefaultChargePointEventsHandler.h @@ -115,8 +115,8 @@ class DefaultChargePointEventsHandler : public ocpp::chargepoint::IChargePointEv std::string getDiagnostics(const ocpp::types::Optional& start_time, const ocpp::types::Optional& stop_time) override; - /** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested() */ - std::string updateFirmwareRequested() override; + /** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested(const std::string&) */ + std::string updateFirmwareRequested(const std::string& url) override; /** @copydoc void IChargePointEventsHandler::installFirmware() */ void installFirmware(const std::string& firmware_file) override; diff --git a/src/ocpp16/chargepoint/interface/IChargePointEventsHandler.h b/src/ocpp16/chargepoint/interface/IChargePointEventsHandler.h index 52ef013c..a5162dd0 100644 --- a/src/ocpp16/chargepoint/interface/IChargePointEventsHandler.h +++ b/src/ocpp16/chargepoint/interface/IChargePointEventsHandler.h @@ -184,9 +184,10 @@ class IChargePointEventsHandler /** * @brief Called on an update firmware request + * @param url URL from where to download the file * @return Path where to download the firmware */ - virtual std::string updateFirmwareRequested() = 0; + virtual std::string updateFirmwareRequested(const std::string& url) = 0; /** * @brief Called when a firmware is ready to be installed diff --git a/src/ocpp16/chargepoint/maintenance/MaintenanceManager.cpp b/src/ocpp16/chargepoint/maintenance/MaintenanceManager.cpp index 41370cf9..b39eeeae 100644 --- a/src/ocpp16/chargepoint/maintenance/MaintenanceManager.cpp +++ b/src/ocpp16/chargepoint/maintenance/MaintenanceManager.cpp @@ -655,7 +655,7 @@ void MaintenanceManager::processUpdateFirmware(std::string } // Notify start of download - std::string local_firmware_file = m_events_handler.updateFirmwareRequested(); + std::string local_firmware_file = m_events_handler.updateFirmwareRequested(location); m_firmware_status = FirmwareStatus::Downloading; sendFirmwareStatusNotification(); @@ -857,7 +857,7 @@ void MaintenanceManager::processSignedUpdateFirmware(std::string } // Notify start of download - std::string local_firmware_file = m_events_handler.updateFirmwareRequested(); + std::string local_firmware_file = m_events_handler.updateFirmwareRequested(location); m_signed_firmware_status = FirmwareStatusEnumType::Downloading; sendSignedFirmwareStatusNotification(); diff --git a/tests/deploy/main.cpp b/tests/deploy/main.cpp index a85cbde8..acde320e 100644 --- a/tests/deploy/main.cpp +++ b/tests/deploy/main.cpp @@ -717,9 +717,10 @@ class ChargePointEventsHandler : public IChargePointEventsHandler /** * @brief Called on an update firmware request + * @param url URL from where to download the file * @return Path where to download the firmware */ - std::string updateFirmwareRequested() override { return ""; } + std::string updateFirmwareRequested(const std::string& url) override { return ""; } /** * @brief Called when a firmware is ready to be installed diff --git a/tests/stubs/ChargePointEventsHandlerStub.cpp b/tests/stubs/ChargePointEventsHandlerStub.cpp index 9ad38539..d8567034 100644 --- a/tests/stubs/ChargePointEventsHandlerStub.cpp +++ b/tests/stubs/ChargePointEventsHandlerStub.cpp @@ -198,10 +198,10 @@ std::string ChargePointEventsHandlerStub::getDiagnostics(const ocpp::types::Opti return m_diag_file; } -/** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested() */ -std::string ChargePointEventsHandlerStub::updateFirmwareRequested() +/** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested(const std::string&) */ +std::string ChargePointEventsHandlerStub::updateFirmwareRequested(const std::string& url) { - m_calls["updateFirmwareRequested"] = {{}}; + m_calls["updateFirmwareRequested"] = {{"url", url}}; return m_diag_file; } diff --git a/tests/stubs/ChargePointEventsHandlerStub.h b/tests/stubs/ChargePointEventsHandlerStub.h index 5ffafc92..fa8b1cef 100644 --- a/tests/stubs/ChargePointEventsHandlerStub.h +++ b/tests/stubs/ChargePointEventsHandlerStub.h @@ -102,8 +102,8 @@ class ChargePointEventsHandlerStub : public ocpp::chargepoint::IChargePointEvent std::string getDiagnostics(const ocpp::types::Optional& start_time, const ocpp::types::Optional& stop_time) override; - /** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested() */ - std::string updateFirmwareRequested() override; + /** @copydoc std::string IChargePointEventsHandler::updateFirmwareRequested(const std::string&) */ + std::string updateFirmwareRequested(const std::string& url) override; /** @copydoc void IChargePointEventsHandler::installFirmware() */ void installFirmware(const std::string& firmware_file) override;