Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/chargepoint/authent/AuthentLocalList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ bool AuthentLocalList::handleMessage(const ocpp::messages::SendLocalListReq& req
// Check local list activation
if (m_ocpp_config.localAuthListEnabled())
{
if (request.listVersion > 0)
if (request.listVersion >= 0)
{
// Check update list size
if (request.localAuthorizationList.size() <= m_ocpp_config.sendLocalListMaxLength())
Expand Down
25 changes: 14 additions & 11 deletions src/chargepoint/maintenance/MaintenanceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -586,9 +586,9 @@ void MaintenanceManager::processGetDiagnostics(std::string
if (!success)
{
// Next retry
nb_retries--;
if (nb_retries != 0)
if (nb_retries > 0)
{
nb_retries--;
LOG_WARNING << "GetDiagnostics : upload failed (" << nb_retries << " retrie(s) left - next retry in "
<< retry_interval_s.count() << "s)";
std::this_thread::sleep_for(retry_interval_s);
Expand Down Expand Up @@ -635,10 +635,12 @@ void MaintenanceManager::processUpdateFirmware(std::string
ocpp::types::Optional<unsigned int> retry_interval,
ocpp::types::DateTime retrieve_date)
{

LOG_INFO << "UpdateFirmware : Waiting until retrieve date:"<<retrieve_date.timestamp()<<" DateTime::now():"<<DateTime::now();

// Check retrieve date
if (retrieve_date > DateTime::now())
{
LOG_INFO << "UpdateFirmware : Waiting until retrieve date";
std::this_thread::sleep_until(std::chrono::system_clock::from_time_t(retrieve_date.timestamp()));
}

Expand Down Expand Up @@ -667,9 +669,10 @@ void MaintenanceManager::processUpdateFirmware(std::string
if (!success)
{
// Next retry
nb_retries--;
if (nb_retries != 0)

if (nb_retries > 0)
{
nb_retries--;
LOG_WARNING << "FirmwareUpdate : download failed (" << nb_retries << " retrie(s) left - next retry in "
<< retry_interval_s.count() << "s)";
std::this_thread::sleep_for(retry_interval_s);
Expand Down Expand Up @@ -766,10 +769,10 @@ void MaintenanceManager::processGetLog(ocpp::types::LogEnumType type,
success = m_events_handler.uploadFile(local_log_file, url);
if (!success)
{
// Next retry
nb_retries--;
if (nb_retries != 0)
// Next retry
if (nb_retries > 0)
{
nb_retries--;
LOG_WARNING << "GetLog : upload failed (" << nb_retries << " retrie(s) left - next retry in " << retry_interval_s.count()
<< "s)";
std::this_thread::sleep_for(retry_interval_s);
Expand Down Expand Up @@ -854,10 +857,10 @@ void MaintenanceManager::processSignedUpdateFirmware(std::string
success = m_events_handler.downloadFile(location, local_firmware_file);
if (!success)
{
// Next retry
nb_retries--;
if (nb_retries != 0)
// Next retry
if (nb_retries > 0)
{
nb_retries--;
LOG_WARNING << "SignedUpdateFirmware : download failed (" << nb_retries << " retrie(s) left - next retry in "
<< retry_interval_s.count() << "s)";
std::this_thread::sleep_for(retry_interval_s);
Expand Down
38 changes: 32 additions & 6 deletions src/chargepoint/metervalues/MeterValuesManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,23 @@ void MeterValuesManager::getTxStopMeterValues(unsigned int connector_id, std::ve
bool MeterValuesManager::onTriggerMessage(ocpp::types::MessageTrigger message, const ocpp::types::Optional<unsigned int>& connector_id)
{
bool ret = false;
if (connector_id.isSet() && (message == MessageTrigger::MeterValues))

if (message == MessageTrigger::MeterValues)
{
processTriggered(connector_id);
ret = true;
if (connector_id.isSet())
{
processTriggered(connector_id);
ret = true;
}
else
{
for (const Connector* connector : m_connectors.getConnectors())
{
unsigned int id = connector->id;
processTriggered(id);
}
ret = true;
}
}
return ret;
}
Expand All @@ -201,12 +214,25 @@ bool MeterValuesManager::onTriggerMessage(ocpp::types::MessageTriggerEnumType
const ocpp::types::Optional<unsigned int>& connector_id)
{
bool ret = false;
if (connector_id.isSet() && (message == MessageTriggerEnumType::MeterValues))
if (message == MessageTriggerEnumType::MeterValues)
{
processTriggered(connector_id);
ret = true;
if (connector_id.isSet())
{
processTriggered(connector_id);
ret = true;
}
else
{
for (const Connector* connector : m_connectors.getConnectors())
{
unsigned int id = connector->id;
processTriggered(id);
}
ret = true;
}
}
return ret;

}

/** @copydoc void IConfigChangedListener::configurationValueChanged(const std::string&) */
Expand Down
34 changes: 18 additions & 16 deletions src/chargepoint/trigger/TriggerMessageManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,14 @@ bool TriggerMessageManager::handleMessage(const ocpp::messages::TriggerMessageRe
}
else
{
// Check connector id
if (!request.connectorId.isSet() || m_connectors.isValid(request.connectorId))
// Check invalid connector id
if (request.connectorId.isSet() && !m_connectors.isValid(request.connectorId))
{
error_code = ocpp::rpc::IRpc::RPC_ERROR_PROPERTY_CONSTRAINT_VIOLATION;
error_message = "Invalid connector id";
response.status = TriggerMessageStatus::Rejected;
}
else
{
// Call handler
if (it->second->onTriggerMessage(request.requestedMessage, request.connectorId))
Expand All @@ -100,11 +106,6 @@ bool TriggerMessageManager::handleMessage(const ocpp::messages::TriggerMessageRe
LOG_WARNING << "Trigger message rejected : " << trigger_message;
}
}
else
{
error_code = ocpp::rpc::IRpc::RPC_ERROR_PROPERTY_CONSTRAINT_VIOLATION;
error_message = "Invalid connector id";
}
}

return ret;
Expand Down Expand Up @@ -136,26 +137,27 @@ bool TriggerMessageManager::handleMessage(const ocpp::messages::ExtendedTriggerM
}
else
{
// Check connector id
if (!request.connectorId.isSet() || m_connectors.isValid(request.connectorId))
// Check invalid connector id
if (request.connectorId.isSet() && !m_connectors.isValid(request.connectorId))
{
error_code = ocpp::rpc::IRpc::RPC_ERROR_PROPERTY_CONSTRAINT_VIOLATION;
error_message = "Invalid connector id";
response.status = TriggerMessageStatusEnumType::Rejected;
}
else
{
// Call handler
if (it->second->onTriggerMessage(request.requestedMessage, request.connectorId))
{
response.status = TriggerMessageStatusEnumType::Accepted;
LOG_INFO << "Extended trigger message accepted : " << trigger_message;
LOG_INFO << "Trigger message accepted : " << trigger_message;
}
else
{
response.status = TriggerMessageStatusEnumType::Rejected;
LOG_WARNING << "Extended trigger message rejected : " << trigger_message;
LOG_WARNING << "Trigger message rejected : " << trigger_message;
}
}
else
{
error_code = ocpp::rpc::IRpc::RPC_ERROR_PROPERTY_CONSTRAINT_VIOLATION;
error_message = "Invalid connector id";
}
}

return ret;
Expand Down
2 changes: 1 addition & 1 deletion tests/stubs/ChargePointEventsHandlerStub.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ bool ChargePointEventsHandlerStub::getLocalLimitationsSchedule(unsigned int
/** @copydoc bool IChargePointEventsHandler::resetRequested(ocpp::types::ResetType) */
bool ChargePointEventsHandlerStub::resetRequested(ocpp::types::ResetType reset_type)
{
m_calls["transactionDeAuthorized"] = {{"reset_type", ResetTypeHelper.toString(reset_type)}};
m_calls["resetRequested"] = {{"reset_type", ResetTypeHelper.toString(reset_type)}};
return callResult("resetRequested");
}

Expand Down