Class OpcuaPlugin
Defined in File opcua_plugin.hpp
Inheritance Relationships
Base Types
public ros2_medkit_gateway::GatewayPluginpublic ros2_medkit_gateway::IntrospectionProviderpublic ros2_medkit_gateway::DataProviderpublic ros2_medkit_gateway::OperationProviderpublic ros2_medkit_gateway::FaultProvider
Class Documentation
-
class OpcuaPlugin : public ros2_medkit_gateway::GatewayPlugin, public ros2_medkit_gateway::IntrospectionProvider, public ros2_medkit_gateway::DataProvider, public ros2_medkit_gateway::OperationProvider, public ros2_medkit_gateway::FaultProvider
OPC-UA Gateway Plugin - bridges OPC-UA PLCs into the SOVD entity tree
Implements GatewayPlugin (lifecycle, routes), IntrospectionProvider (entity discovery from OPC-UA address space), and the typed provider interfaces (DataProvider, OperationProvider, FaultProvider) so that standard SOVD endpoints (/data, /operations, /faults) work for PLC entities alongside the vendor x-plc-* extensions.
Standard SOVD endpoints (via provider interfaces): GET /{type}/{id}/data - DataProvider::list_data GET /{type}/{id}/data/{name} - DataProvider::read_data PUT /{type}/{id}/data/{name} - DataProvider::write_data GET /{type}/{id}/operations - OperationProvider::list_operations POST /{type}/{id}/operations/{name} - OperationProvider::execute_operation GET /{type}/{id}/faults - FaultProvider::list_faults GET /{type}/{id}/faults/{code} - FaultProvider::get_fault DELETE /{type}/{id}/faults/{code} - FaultProvider::clear_fault
Vendor REST extensions (via get_routes): GET /apps/{id}/x-plc-data - All OPC-UA values for entity GET /apps/{id}/x-plc-data/{node} - Single node value POST /apps/{id}/x-plc-operations/{op} - Write value to PLC GET /components/{id}/x-plc-status - Connection state and stats
Public Functions
-
OpcuaPlugin()
-
~OpcuaPlugin() override
-
inline std::string name() const override
-
void configure(const nlohmann::json &config) override
-
void set_context(ros2_medkit_gateway::PluginContext &context) override
-
std::vector<PluginRoute> get_routes() override
-
void shutdown() override
-
ros2_medkit_gateway::IntrospectionResult introspect(const ros2_medkit_gateway::IntrospectionInput &input) override
-
tl::expected<nlohmann::json, DataProviderErrorInfo> list_data(const std::string &entity_id) override
-
tl::expected<nlohmann::json, DataProviderErrorInfo> read_data(const std::string &entity_id, const std::string &resource_name) override
-
tl::expected<nlohmann::json, DataProviderErrorInfo> write_data(const std::string &entity_id, const std::string &resource_name, const nlohmann::json &value) override
-
tl::expected<nlohmann::json, OperationProviderErrorInfo> list_operations(const std::string &entity_id) override
-
tl::expected<nlohmann::json, OperationProviderErrorInfo> execute_operation(const std::string &entity_id, const std::string &operation_name, const nlohmann::json ¶meters) override
-
tl::expected<nlohmann::json, FaultProviderErrorInfo> list_faults(const std::string &entity_id) override
-
tl::expected<nlohmann::json, FaultProviderErrorInfo> get_fault(const std::string &entity_id, const std::string &fault_code) override
-
tl::expected<nlohmann::json, FaultProviderErrorInfo> clear_fault(const std::string &entity_id, const std::string &fault_code) override
-
OpcuaPlugin()