6#include <ocpp/v2/message_handler.hpp>
9struct FunctionalBlockContext;
10class OcspUpdaterInterface;
12class AvailabilityInterface;
13class SecurityInterface;
14class MeterValuesInterface;
15class DiagnosticsInterface;
16class TransactionInterface;
18struct BootNotificationResponse;
19struct SetVariablesRequest;
20struct GetBaseReportRequest;
22struct SetNetworkProfileRequest;
24typedef std::function<void(
const ocpp::DateTime& currentTime)> TimeSyncCallback;
25typedef std::function<void(
const BootNotificationResponse& boot_notification_response)> BootNotificationCallback;
26typedef std::function<SetNetworkProfileStatusEnum(
const int32_t configuration_slot,
27 const NetworkConnectionProfile& network_connection_profile)>
28 ValidateNetworkProfileCallback;
29typedef std::function<bool(
const std::optional<const int32_t> evse_id,
const ResetEnum& reset_type)>
30 IsResetAllowedCallback;
31typedef std::function<void(
const std::optional<const int32_t> evse_id,
const ResetEnum& reset_type)> ResetCallback;
32typedef std::function<RequestStartStopStatusEnum(
const int32_t evse_id,
const ReasonEnum& stop_reason)>
33 StopTransactionCallback;
34typedef std::function<void(
const SetVariableData& set_variable_data)> VariableChangedCallback;
41 virtual void boot_notification_req(
const BootReasonEnum& reason,
42 const bool initiated_by_trigger_message =
false) = 0;
43 virtual void stop_bootnotification_timer() = 0;
54 virtual std::vector<GetVariableResult>
55 get_variables(
const std::vector<GetVariableData>& get_variable_data_vector) = 0;
61 virtual std::map<SetVariableData, SetVariableResult>
62 set_variables(
const std::vector<SetVariableData>& set_variable_data_vector,
const std::string& source) = 0;
71 std::optional<BootNotificationCallback> boot_notification_callback,
72 std::optional<ValidateNetworkProfileCallback> validate_network_profile_callback,
73 IsResetAllowedCallback is_reset_allowed_callback, ResetCallback reset_callback,
74 StopTransactionCallback stop_transaction_callback,
75 std::optional<VariableChangedCallback> variable_changed_callback,
77 std::atomic<RegistrationStatusEnum>& registration_status);
79 void boot_notification_req(
const BootReasonEnum& reason,
const bool initiated_by_trigger_message =
false)
override;
80 void stop_bootnotification_timer()
override;
82 std::vector<GetVariableResult>
get_variables(
const std::vector<GetVariableData>& get_variable_data_vector)
override;
83 std::map<SetVariableData, SetVariableResult>
84 set_variables(
const std::vector<SetVariableData>& set_variable_data_vector,
const std::string& source)
override;
97 std::optional<TimeSyncCallback> time_sync_callback;
98 std::optional<BootNotificationCallback> boot_notification_callback;
99 std::optional<ValidateNetworkProfileCallback> validate_network_profile_callback;
100 IsResetAllowedCallback is_reset_allowed_callback;
101 ResetCallback reset_callback;
102 StopTransactionCallback stop_transaction_callback;
103 std::optional<VariableChangedCallback> variable_changed_callback;
105 std::atomic<RegistrationStatusEnum>& registration_status;
107 Everest::SteadyTimer boot_notification_timer;
112 void notify_report_req(
const int request_id,
const std::vector<ReportData>& report_data);
128 void handle_variable_changed(
const SetVariableData& set_variable_data);
129 void handle_variables_changed(
const std::map<SetVariableData, SetVariableResult>& set_variable_results);
138 std::map<SetVariableData, SetVariableResult>
139 set_variables_internal(
const std::vector<SetVariableData>& set_variable_data_vector,
const std::string& source,
140 const bool allow_read_only);
Contains a DateTime implementation that can parse and create RFC 3339 compatible strings.
Definition: types.hpp:109
Definition: availability.hpp:21
Definition: diagnostics.hpp:32
Interface for handling OCPP2.0.1 CALL messages from the CSMS. Classes implementing a functional block...
Definition: message_handler.hpp:13
Definition: meter_values.hpp:14
Definition: ocsp_updater.hpp:44
Definition: provisioning.hpp:36
virtual std::map< SetVariableData, SetVariableResult > set_variables(const std::vector< SetVariableData > &set_variable_data_vector, const std::string &source)=0
Sets variables specified within set_variable_data_vector in the device model and returns the result.
virtual std::vector< GetVariableResult > get_variables(const std::vector< GetVariableData > &get_variable_data_vector)=0
Gets variables specified within get_variable_data_vector from the device model and returns the result...
virtual void on_variable_changed(const SetVariableData &set_variable_data)=0
Event handler that will update the variable internally when it has been changed on the fly.
Definition: provisioning.hpp:65
std::vector< GetVariableResult > get_variables(const std::vector< GetVariableData > &get_variable_data_vector) override
Gets variables specified within get_variable_data_vector from the device model and returns the result...
Definition: provisioning.cpp:119
std::map< SetVariableData, SetVariableResult > set_variables(const std::vector< SetVariableData > &set_variable_data_vector, const std::string &source) override
Sets variables specified within set_variable_data_vector in the device model and returns the result.
Definition: provisioning.cpp:140
void handle_message(const ocpp::EnhancedMessage< MessageType > &message) override
Handles the given message from the CSMS. This includes dispatching a CALLRESULT as a response to the ...
Definition: provisioning.cpp:67
void on_variable_changed(const SetVariableData &set_variable_data) override
Event handler that will update the variable internally when it has been changed on the fly.
Definition: provisioning.cpp:114
Definition: security.hpp:29
Definition: transaction.hpp:26
Contains a OCPP CallResult message.
Definition: call_types.hpp:105
Contains a OCPP Call message.
Definition: call_types.hpp:60
Contains a OCPP message in json form with additional information.
Definition: message_queue.hpp:54
Context / requirements for the functional blocks.
Definition: functional_block_context.hpp:23
Definition: ocpp_types.hpp:898