Capabilities2 0.3.0
Loading...
Searching...
No Matches
get_capability_specs_runner.hpp
Go to the documentation of this file.
1#pragma once
2
4#include <capabilities2_msgs/srv/get_capability_specs.hpp>
5
7{
8
15class GetCapabilitySpecsRunner : public ServiceRunner<capabilities2_msgs::srv::GetCapabilitySpecs>
16{
17public:
21
29 virtual void start(rclcpp::Node::SharedPtr node, const runner_opts& run_config, const std::string& bond_id) override
30 {
31 init_service(node, run_config, "/capabilities/get_capability_specs");
32
33 // emit start event
34 emit_started(bond_id, "", param_on_started());
35 }
36
37protected:
44 virtual capabilities2_msgs::srv::GetCapabilitySpecs::Request
46 {
47 capabilities2_msgs::srv::GetCapabilitySpecs::Request request;
48 return request;
49 }
50
58 {
59 // Create an Event Parameter with CapabilitySpecs content
60 std::vector<std::string> capability_spec_strings;
61 for (const auto& spec : response_->capability_specs)
62 {
63 std::string spec_string = "package: " + spec.package + ", type: " + spec.type +
64 ", default_provider: " + spec.default_provider + ", content: " + spec.content;
65 capability_spec_strings.push_back(spec_string);
66 }
67
68 // Create EventParameters and set the capability specs as a parameter for the on_success event
70 parameters.set_value("CapabilitySpecs", capability_spec_strings, capabilities2_events::OptionType::VECTOR_STRING);
71
72 RCLCPP_INFO(node_->get_logger(), "GetCapabilitySpecsRunner creating param_on_success with %zu capability specs", capability_spec_strings.size());
73
74 return parameters;
75 }
76
77 virtual void process_response(typename capabilities2_msgs::srv::GetCapabilitySpecs::Response::SharedPtr response) override
78 {
79 // This function can be used to log the response or perform any additional processing if needed
80 RCLCPP_INFO(node_->get_logger(), "GetCapabilitySpecsRunner received response with %zu capability specs", response->capability_specs.size());
81 }
82};
83
84} // namespace capabilities2_runner
Executor runner class.
Definition get_capability_specs_runner.hpp:16
virtual capabilities2_events::EventParameters param_on_success() override
This function overrides the param_on_success() function from RunnerBase to provide specific implement...
Definition get_capability_specs_runner.hpp:57
virtual capabilities2_msgs::srv::GetCapabilitySpecs::Request generate_request(capabilities2_events::EventParameters &parameters) override
This generate goal function overrides the generate_goal() function from ActionRunner()
Definition get_capability_specs_runner.hpp:45
GetCapabilitySpecsRunner()
Definition get_capability_specs_runner.hpp:18
virtual void process_response(typename capabilities2_msgs::srv::GetCapabilitySpecs::Response::SharedPtr response) override
Definition get_capability_specs_runner.hpp:77
virtual void start(rclcpp::Node::SharedPtr node, const runner_opts &run_config, const std::string &bond_id) override
Starter function for starting the action runner.
Definition get_capability_specs_runner.hpp:29
virtual capabilities2_events::EventParameters param_on_started()
Update on_started event parameters with new data if available.
Definition runner_base.hpp:226
rclcpp::Node::SharedPtr node_
shared pointer to the capabilities node Allows to use ros node related functionalities
Definition runner_base.hpp:469
void emit_started(const std::string &bond_id, const std::string &instance_id, capabilities2_events::EventParameters parameters=capabilities2_events::EventParameters())
emit STARTED event
Definition runner_base.hpp:418
service runner base class
Definition service_runner.hpp:17
virtual void init_service(rclcpp::Node::SharedPtr node, const runner_opts &run_config, const std::string &service_name)
Initializer function for initializing the service runner in place of constructor due to plugin semant...
Definition service_runner.hpp:33
ServiceT::Response::SharedPtr response_
Definition service_runner.hpp:159
Definition action_runner.hpp:19
capability options for a capability runner given by interface and provider
Definition event_parameters.hpp:167
void set_value(const std::string &key, const std::any &value, const OptionType &type)
Set the value of an option by key, if the option does not exist it will be created.
Definition event_parameters.hpp:237
runner options
Definition runner_base.hpp:56