/eulero_manager/list_building_anchors
#
Caution
This documentation page has been auto-generated.
It may be missing some details.
/eulero_manager/list_building_anchors
Quick Facts
- Category
- Message type
eulero_msgs/srv/List
Retrieves the keys of all the BuildingAnchors
Quick snippets#
$ ros2 service call /eulero_manager/list_building_anchors eulero_msgs/srv/List
# (tip: press Tab to complete the message prototype)
How to use in your code#
1#!/usr/bin/env python
2
3import sys
4import rclpy
5from rclpy.node import Node
6
7from eulero_msgs.srv import List
8
9class ListBuildingAnchorsClientAsync(Node):
10
11 def __init__(self):
12 super().__init__('eulero_manager_list_building_anchors_client_async')
13 self.cli = self.create_client(List, 'eulero_manager_list_building_anchors')
14 while not self.cli.wait_for_service(timeout_sec=1.0):
15 self.get_logger().info('service not available, waiting again...')
16 self.req = List.Request()
17
18 def send_request(self, a, b):
19 # TODO: adapt to the service's parameters
20 # self.req.a = a
21 # self.req.b = b
22 self.future = self.cli.call_async(self.req)
23 rclpy.spin_until_future_complete(self, self.future)
24 return self.future.result()
25
26
27if __name__ == '__main__':
28 rclpy.init(args=args)
29
30 srv_client = ListBuildingAnchorsClientAsync()
31
32 # TODO: adapt to your parameters
33 response = srv_client.send_request(sys.argv[1], sys.argv[2])
34 srv_client.get_logger().info(
35 'Result of eulero_manager_list_building_anchors: %s' % response)
36
37 rclpy.shutdown()
1#include "rclcpp/rclcpp.hpp"
2#include "eulero_msgs/srv/list.hpp"
3
4#include <chrono>
5#include <cstdlib>
6#include <memory>
7
8using namespace std::chrono_literals;
9using namespace std;
10using namespace rclcpp;
11
12int main(int argc, char **argv)
13{
14 init(argc, argv);
15
16 shared_ptr<Node> node = Node::make_shared("eulero_manager/list_building_anchors_client");
17 Client<eulero_msgs::srv::List>::SharedPtr client =
18 node->create_client<eulero_msgs::srv::List>("eulero_manager/list_building_anchors");
19
20 auto request = make_shared<eulero_msgs::srv::List::Request>();
21
22 // TODO: adapt to the service's parameters
23 // request->a = ...;
24 // request->b = ...;
25
26 while (!client->wait_for_service(1s)) {
27 if (!ok()) {
28 RCLCPP_ERROR(get_logger("rclcpp"), "Interrupted while waiting for the service. Exiting.");
29 return 0;
30 }
31 RCLCPP_INFO(get_logger("rclcpp"), "service not available, waiting again...");
32 }
33
34 auto result = client->async_send_request(request);
35 // Wait for the result.
36 if (spin_until_future_complete(node, result) == FutureReturnCode::SUCCESS)
37 {
38 // TODO: do something with the result
39 // result.get()->...;
40 } else {
41 RCLCPP_ERROR(get_logger("rclcpp"), "Failed to call service eulero_manager/list_building_anchors");
42 }
43
44 shutdown();
45 return 0;
46}