6#include <ocpp/v2/message_handler.hpp>
10struct FunctionalBlockContext;
11class AvailabilityInterface;
12class SecurityInterface;
14struct UpdateFirmwareRequest;
15struct UpdateFirmwareResponse;
18typedef std::function<UpdateFirmwareResponse(
const UpdateFirmwareRequest& request)> UpdateFirmwareRequestCallback;
19typedef std::function<void()> AllConnectorsUnavailableCallback;
25 virtual void on_firmware_update_status_notification(int32_t request_id,
26 const FirmwareStatusEnum& firmware_update_status) = 0;
27 virtual void on_firmware_status_notification_request() = 0;
36 UpdateFirmwareRequestCallback update_firmware_request_callback;
37 std::optional<AllConnectorsUnavailableCallback> all_connectors_unavailable_callback;
39 FirmwareStatusEnum firmware_status;
41 std::optional<int32_t> firmware_status_id;
43 FirmwareStatusEnum firmware_status_before_installing = FirmwareStatusEnum::SignatureVerified;
47 SecurityInterface& security, UpdateFirmwareRequestCallback update_firmware_request_callback,
48 std::optional<AllConnectorsUnavailableCallback> all_connectors_unavailable_callback);
50 void on_firmware_update_status_notification(int32_t request_id,
51 const FirmwareStatusEnum& firmware_update_status)
override;
52 void on_firmware_status_notification_request()
override;
62 void change_all_connectors_to_unavailable_for_firmware_update();
65 void restore_all_connector_states();
Definition: availability.hpp:21
Definition: firmware_update.hpp:21
Definition: firmware_update.hpp:30
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: firmware_update.cpp:37
Interface for handling OCPP2.0.1 CALL messages from the CSMS. Classes implementing a functional block...
Definition: message_handler.hpp:13
Definition: security.hpp:29
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