Skip to content

Commit

Permalink
fixup cpp package problems as noted in osrf#46
Browse files Browse the repository at this point in the history
  • Loading branch information
codebot committed May 23, 2019
1 parent ef15995 commit 2ac7cd2
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 19 deletions.
23 changes: 20 additions & 3 deletions code/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
cmake_minimum_required(VERSION 2.8.3)
project(cpp)

find_package(catkin REQUIRED roscpp)
find_package(catkin REQUIRED
COMPONENTS
roscpp
message_generation
actionlib
actionlib_msgs
std_msgs)

add_service_files(FILES WordCount.srv)

add_action_files(DIRECTORY action FILES Sample.action)

generate_messages(DEPENDENCIES std_msgs actionlib_msgs)

catkin_package(
# INCLUDE_DIRS include
# LIBRARIES cpp
# CATKIN_DEPENDS other_catkin_pkg
CATKIN_DEPENDS message_runtime roscpp std_msgs
# DEPENDS system_lib
)

include_directories(${catkin_INCLUDE_DIRS})

add_executable(minimal src/minimal.cpp)
add_executable(topic_publisher src/topic_publisher.cpp)
add_executable(topic_subscriber src/topic_subscriber.cpp)
Expand All @@ -34,16 +48,19 @@ target_link_libraries(topic_subscriber
target_link_libraries(service_server
${catkin_LIBRARIES}
)
add_dependencies(service_server ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

target_link_libraries(service_client
${catkin_LIBRARIES}
)
add_dependencies(service_client ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

target_link_libraries(action_server
${catkin_LIBRARIES}
)
add_dependencies(service_server ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

target_link_libraries(action_client
${catkin_LIBRARIES}
)

add_dependencies(service_server ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
5 changes: 5 additions & 0 deletions code/cpp/action/Sample.action
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
string foo
---
string bar
---
string baz
10 changes: 8 additions & 2 deletions code/cpp/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,24 @@
<!-- Dependencies can be catkin packages or system dependencies -->
<!-- Examples: -->
<!-- Use build_depend for packages you need at compile time: -->
<!-- <build_depend>message_generation</build_depend> -->
<build_depend>message_generation</build_depend>
<!-- Use buildtool_depend for build tool packages: -->
<!-- <buildtool_depend>catkin</buildtool_depend> -->
<!-- Use run_depend for packages you need at runtime: -->
<!-- <run_depend>message_runtime</run_depend> -->
<run_depend>message_runtime</run_depend>
<!-- Use test_depend for packages you need only for testing: -->
<!-- <test_depend>gtest</test_depend> -->
<buildtool_depend>catkin</buildtool_depend>

<build_depend>roscpp</build_depend>
<run_depend>roscpp</run_depend>

<build_depend>actionlib_msgs</build_depend>
<run_depend>actionlib_msgs</run_depend>

<build_depend>std_msgs</build_depend>
<run_depend>std_msgs</run_depend>

<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->
Expand Down
1 change: 1 addition & 0 deletions code/cpp/src/action_client.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#include <ros/ros.h>

// TODO

int main(int argc, char **argv) {
return 0;
Expand Down
18 changes: 14 additions & 4 deletions code/cpp/src/action_server.cpp
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
#include <ros/ros.h>
#include <actionlib/server/simple_action_server.h>
#include <cpp/MyAction.h>
#include <cpp/SampleAction.h>

actionlib::SimpleActionServer<cpp::SampleAction> *g_action_server = NULL;

void sample_action_callback(const cpp::SampleGoalConstPtr &goal)
{
// do stuff
cpp::SampleResult result;
g_action_server->setSucceeded(result);
}

int main(int argc, char **argv) {
ros::init(argc, argv, "action_server");
ros::NodeHandle node;

actionlib::SimpleActionServer<cpp::MyAction> server;
cpp::MyActionFeedback feedback;
cpp::MyActionResult result;
actionlib::SimpleActionServer<cpp::SampleAction> server(
node, "sample_action", sample_action_callback, false);
g_action_server = &server;
server.start();

ros::spin();

return 0;
}
2 changes: 1 addition & 1 deletion code/cpp/src/service_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


int main(int argc, char **argv) {
ros::init(argc, char **argv, "count_client");
ros::init(argc, argv, "count_client");
ros::NodeHandle node;

ros::ServiceClient client = node.serviceClient<cpp::WordCount>("count"); // <1>
Expand Down
15 changes: 6 additions & 9 deletions code/cpp/src/service_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,27 @@

bool count(cpp::WordCount::Request &req, // <1>
cpp::WordCount::Response &res) {
l = strlen(req.words);
const size_t l = strlen(req.words.c_str());
if (l == 0)
count = 0;
res.count = 0;
else {
count = 1;
for(int i = 0; i < l; ++i)
res.count = 1;
for(size_t i = 0; i < l; ++i)
if (req.words[i] == ' ')
++count;
res.count++;
}

res.count = count;

return true;
}


int main(int argc, char **argv) {
ros::init(int argc, char **argv, "count_server");
ros::init(argc, argv, "count_server");
ros::NodeHandle node;

ros::ServiceServer service = node.advertiseService("count", count); // <2>

ros::spin(); // <3>


return 0;
}
3 changes: 3 additions & 0 deletions code/cpp/srv/WordCount.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
string words
---
uint32 count

0 comments on commit 2ac7cd2

Please sign in to comment.