! ../scripts/generate_cling_3rd_party.py roscpp
! ../scripts/generate_cling_3rd_party.py roscpp_tutorials
#include "load_roscpp.h"
#include "load_roscpp_tutorials.h"
Code below are taken from http://wiki.ros.org/ROS/Tutorials/WritingServiceClient%28c%2B%2B%29
#include <ros/ros.h>
#include <roscpp_tutorials/TwoInts.h>
#include <cstdio>
bool add(roscpp_tutorials::TwoInts::Request &req,
roscpp_tutorials::TwoInts::Response &res)
{
res.sum = req.a + req.b;
ROS_INFO("request: x=%ld, y=%ld", (long int)req.a, (long int)req.b);
ROS_INFO("sending back response: [%ld]", (long int)res.sum);
return true;
}
int argc = 1;
char *argv[1];
argv[0] = new char[10];
strcpy(argv[0], "srv_client");
ros::init(argc, argv, "srv_client");
ros::NodeHandle n;
ros::ServiceClient client = n.serviceClient<roscpp_tutorials::TwoInts>("add_two_ints");
roscpp_tutorials::TwoInts srv;
srv.request.a = 1;
srv.request.b = 2;
if (client.call(srv))
{
printf("Sum: %ld\n", (long int)srv.response.sum);
ROS_INFO("Sum: %ld\n", (long int)srv.response.sum);
}
else
{
printf("Failed to call service add_two_ints\n");
ROS_INFO("Failed to call service add_two_ints\n");
}