6#include <ocpp/v2/message_handler.hpp>
9struct FunctionalBlockContext;
10class AuthorizationInterface;
11class AvailabilityInterface;
12class SmartChargingInterface;
13class TariffAndCostInterface;
15struct GetTransactionStatusRequest;
17typedef std::function<void(
const TransactionEventRequest& transaction_event)> TransactionEventCallback;
18typedef std::function<void(
const std::optional<const int32_t> evse_id,
const ResetEnum& reset_type)> ResetCallback;
19typedef std::function<void(
const TransactionEventRequest& transaction_event,
20 const TransactionEventResponse& transaction_event_response)>
21 TransactionEventResponseCallback;
22typedef std::function<RequestStartStopStatusEnum(
const int32_t evse_id,
const ReasonEnum& stop_reason)>
23 StopTransactionCallback;
24typedef std::function<void(
const int32_t evse_id)> PauseChargingCallback;
44 const DateTime& timestamp,
const TriggerReasonEnum trigger_reason,
45 const MeterValue& meter_start,
const std::optional<IdToken>& id_token,
46 const std::optional<IdToken>& group_id_token,
const std::optional<int32_t>& reservation_id,
47 const std::optional<int32_t>& remote_start_id,
const ChargingStateEnum charging_state) = 0;
58 const ReasonEnum reason,
const TriggerReasonEnum trigger_reason,
59 const std::optional<IdToken>& id_token,
60 const std::optional<std::string>& signed_meter_value,
61 const ChargingStateEnum charging_state) = 0;
66 virtual void transaction_event_req(
const TransactionEventEnum& event_type,
const DateTime& timestamp,
67 const Transaction& transaction,
const TriggerReasonEnum& trigger_reason,
68 const int32_t seq_no,
const std::optional<int32_t>& cable_max_current,
69 const std::optional<EVSE>& evse,
const std::optional<IdToken>& id_token,
70 const std::optional<std::vector<MeterValue>>& meter_value,
71 const std::optional<int32_t>& number_of_phases_used,
const bool offline,
72 const std::optional<int32_t>& reservation_id,
73 const bool initiated_by_trigger_message =
false) = 0;
75 virtual void set_remote_start_id_for_evse(
const int32_t evse_id,
const IdToken id_token,
76 const int32_t remote_start_id) = 0;
77 virtual void schedule_reset(
const std::optional<int32_t> reset_scheduled_evseid) = 0;
86 PauseChargingCallback pause_charging_callback,
87 std::optional<TransactionEventCallback> transaction_event_callback,
88 std::optional<TransactionEventResponseCallback> transaction_event_response_callback,
89 ResetCallback reset_callback);
91 void on_transaction_started(
const int32_t evse_id,
const int32_t connector_id,
const std::string& session_id,
92 const DateTime& timestamp,
const TriggerReasonEnum trigger_reason,
93 const MeterValue& meter_start,
const std::optional<IdToken>& id_token,
94 const std::optional<IdToken>& group_id_token,
95 const std::optional<int32_t>& reservation_id,
96 const std::optional<int32_t>& remote_start_id,
97 const ChargingStateEnum charging_state)
override;
99 const ReasonEnum reason,
const TriggerReasonEnum trigger_reason,
100 const std::optional<IdToken>& id_token,
101 const std::optional<std::string>& signed_meter_value,
102 const ChargingStateEnum charging_state)
override;
103 void transaction_event_req(
const TransactionEventEnum& event_type,
const DateTime& timestamp,
104 const Transaction& transaction,
const TriggerReasonEnum& trigger_reason,
105 const int32_t seq_no,
const std::optional<int32_t>& cable_max_current,
106 const std::optional<EVSE>& evse,
const std::optional<IdToken>& id_token,
107 const std::optional<std::vector<MeterValue>>& meter_value,
108 const std::optional<int32_t>& number_of_phases_used,
const bool offline,
109 const std::optional<int32_t>& reservation_id,
110 const bool initiated_by_trigger_message =
false)
override;
111 void set_remote_start_id_for_evse(
const int32_t evse_id,
const IdToken id_token,
112 const int32_t remote_start_id)
override;
113 void schedule_reset(
const std::optional<int32_t> reset_scheduled_evseid)
override;
122 StopTransactionCallback stop_transaction_callback;
123 PauseChargingCallback pause_charging_callback;
124 std::optional<TransactionEventCallback> transaction_event_callback;
125 std::optional<TransactionEventResponseCallback> transaction_event_response_callback;
126 ResetCallback reset_callback;
128 std::map<int32_t, std::pair<IdToken, int32_t>> remote_start_id_per_evse;
130 bool reset_scheduled;
132 std::set<int32_t> reset_scheduled_evseids;
Contains a DateTime implementation that can parse and create RFC 3339 compatible strings.
Definition: types.hpp:109
Definition: authorization.hpp:18
Definition: availability.hpp:21
Interface for handling OCPP2.0.1 CALL messages from the CSMS. Classes implementing a functional block...
Definition: message_handler.hpp:13
Definition: smart_charging.hpp:70
Definition: tariff_and_cost.hpp:20
Definition: transaction.hpp:80
void on_transaction_finished(const int32_t evse_id, const DateTime ×tamp, const MeterValue &meter_stop, const ReasonEnum reason, const TriggerReasonEnum trigger_reason, const std::optional< IdToken > &id_token, const std::optional< std::string > &signed_meter_value, const ChargingStateEnum charging_state) override
Event handler that should be called when a transaction has finished.
Definition: transaction.cpp:91
void on_transaction_started(const int32_t evse_id, const int32_t connector_id, const std::string &session_id, const DateTime ×tamp, const TriggerReasonEnum trigger_reason, const MeterValue &meter_start, const std::optional< IdToken > &id_token, const std::optional< IdToken > &group_id_token, const std::optional< int32_t > &reservation_id, const std::optional< int32_t > &remote_start_id, const ChargingStateEnum charging_state) override
Event handler that should be called when a transaction has started.
Definition: transaction.cpp:56
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: transaction.cpp:44
Definition: transaction.hpp:26
virtual void on_transaction_finished(const int32_t evse_id, const DateTime ×tamp, const MeterValue &meter_stop, const ReasonEnum reason, const TriggerReasonEnum trigger_reason, const std::optional< IdToken > &id_token, const std::optional< std::string > &signed_meter_value, const ChargingStateEnum charging_state)=0
Event handler that should be called when a transaction has finished.
virtual void on_transaction_started(const int32_t evse_id, const int32_t connector_id, const std::string &session_id, const DateTime ×tamp, const TriggerReasonEnum trigger_reason, const MeterValue &meter_start, const std::optional< IdToken > &id_token, const std::optional< IdToken > &group_id_token, const std::optional< int32_t > &reservation_id, const std::optional< int32_t > &remote_start_id, const ChargingStateEnum charging_state)=0
Event handler that should be called when a transaction has started.
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:36
Definition: ocpp_types.hpp:436
Definition: ocpp_types.hpp:933