Skip to content

feat(sovd_service_interface): implement GetEntityData service #351

@mfaferek93

Description

@mfaferek93

Problem

GetEntityData ROS 2 service is a stub (returns success=false). Plugin cannot access live topic data because PluginContext does not expose data access methods.

Solution

Extend PluginContext with data access API:

/// Get aggregated topics for an entity (entity -> topic list)
virtual AggregatedData get_entity_data(const std::string & entity_id) const;

/// Sample a single topic (subscribe, wait for msg, return JSON)
virtual TopicSampleResult sample_topic(const std::string & topic_name, double timeout_sec = 1.0) const;

Implementation delegates to existing ThreadSafeEntityCache::get_entity_data() and NativeTopicSampler::sample_topic() in GatewayNode.

Then implement handle_get_entity_data() in SOVD Service Interface plugin using the new PluginContext methods.

Scope

  • plugin_context.hpp: add virtual methods
  • plugin_context.cpp: implement via GatewayNode internals
  • sovd_service_interface.cpp: implement handler
  • test: add GetEntityData test case

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions