Class OpcuaPlugin

Inheritance Relationships

Base Types

  • 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

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 &parameters) 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