6#include <unordered_map>
8#include <everest/timer.hpp>
10#include <ocpp/v2/enums.hpp>
11#include <ocpp/v2/ocpp_enums.hpp>
12#include <ocpp/v2/ocpp_types.hpp>
14#include <ocpp/v2/device_model_storage_interface.hpp>
20enum UpdateMonitorMetaType {
57 UpdateMonitorMetaType type;
66 std::string value_previous;
67 std::string value_current;
81 if (type != UpdateMonitorMetaType::TRIGGER) {
82 throw std::runtime_error(
"Clear state should never be used on a non-trigger meta!");
96typedef std::function<void(
const std::vector<EventData>&)> notify_events;
97typedef std::function<bool()> is_offline;
132 void on_variable_changed(
const std::unordered_map<int64_t, VariableMonitoringMeta>& monitors,
135 const std::string& value_old,
const std::string& value_current);
149 const std::string& value_current);
155 void process_monitors_internal(
bool allow_periodics,
bool allow_trigger);
165 bool should_remove_monitor_meta_internal(
const UpdaterMonitorMeta& updater_meta_data);
169 void update_periodic_monitors_internal();
171 void get_monitoring_info(
bool& out_is_offline,
int& out_offline_severity,
int& out_active_monitoring_level,
172 MonitoringBaseEnum& out_active_monitoring_base);
174 bool is_monitoring_enabled();
178 Everest::SteadyTimer monitors_timer;
181 std::int32_t unique_id;
183 notify_events notify_csms_events;
184 is_offline is_chargepoint_offline;
186 std::unordered_map<std::int32_t, UpdaterMonitorMeta> updater_monitors_meta;
This class manages access to the device model representation and to the device model interface and pr...
Definition: device_model.hpp:96
Definition: monitoring_updater.hpp:99
void process_triggered_monitors()
Processes the variable triggered monitors. Will be called after relevant variable modification operat...
Definition: monitoring_updater.cpp:178
void start_monitoring()
Starts monitoring the variables, kicking the timer.
Definition: monitoring_updater.cpp:148
void stop_monitoring()
Stops monitoring the variables, canceling the timer.
Definition: monitoring_updater.cpp:174
Definition: ocpp_types.hpp:303
Definition: ocpp_types.hpp:701
Definition: ocpp_types.hpp:719
Definition: ocpp_types.hpp:319