From 8226e5207039e4f5d7c676eddb4a5d8077317db8 Mon Sep 17 00:00:00 2001 From: AssemblyJohn Date: Wed, 7 Aug 2024 16:41:03 +0300 Subject: [PATCH] Updated logic flow to allow for variables to set the charging station offline, since a 'fake' online status can have the consequence of events being dropped Signed-off-by: AssemblyJohn --- lib/ocpp/v201/charge_point.cpp | 6 +++--- lib/ocpp/v201/monitoring_updater.cpp | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/ocpp/v201/charge_point.cpp b/lib/ocpp/v201/charge_point.cpp index 3c9ec43a37..9e61aa91d4 100644 --- a/lib/ocpp/v201/charge_point.cpp +++ b/lib/ocpp/v201/charge_point.cpp @@ -1758,9 +1758,6 @@ void ChargePoint::handle_variable_changed(const SetVariableData& set_variable_da } void ChargePoint::handle_variables_changed(const std::map& set_variable_results) { - // process all triggered monitors - this->monitoring_updater.process_triggered_monitors(); - // iterate over set_variable_results for (const auto& [set_variable_data, set_variable_result] : set_variable_results) { if (set_variable_result.attributeStatus == SetVariableStatusEnum::Accepted) { @@ -1774,6 +1771,9 @@ void ChargePoint::handle_variables_changed(const std::mapmonitoring_updater.process_triggered_monitors(); } bool ChargePoint::validate_set_variable(const SetVariableData& set_variable_data) { diff --git a/lib/ocpp/v201/monitoring_updater.cpp b/lib/ocpp/v201/monitoring_updater.cpp index cd954c4e73..3b1d902a4f 100644 --- a/lib/ocpp/v201/monitoring_updater.cpp +++ b/lib/ocpp/v201/monitoring_updater.cpp @@ -87,8 +87,8 @@ std::chrono::time_point get_next_clock_aligned_point( auto dbg_time_now = std::chrono::system_clock::to_time_t(sys_time_now); auto dbg_time_aligned = std::chrono::system_clock::to_time_t(aligned_timepoint); - EVLOG_info << "Aligned time: " << std::ctime(&dbg_time_now) << " with interval: " << monitor_seconds.count() - << " to next timepoint: " << std::ctime(&dbg_time_aligned); + EVLOG_debug << "Aligned time: " << std::ctime(&dbg_time_now) << " with interval: " << monitor_seconds.count() + << " to next timepoint: " << std::ctime(&dbg_time_aligned); return aligned_timepoint; } @@ -544,6 +544,8 @@ void MonitoringUpdater::process_monitors_internal(bool allow_periodics, bool all } } + EVLOG_debug << "Monitor: " << updater_monitor_meta.monitor_meta.monitor << " processed: " << should_process; + if (!should_process) { if (updater_monitor_meta.type == UpdateMonitorMetaType::TRIGGER) { // The triggers that are not active, should simply pe discarded