From f74a487f951341415541a612dce5a3d1dcbb6f26 Mon Sep 17 00:00:00 2001 From: Ruben Smits Date: Tue, 25 Feb 2014 15:16:48 +0100 Subject: [PATCH] make beckhoff_drivers and master compatible with catkin Signed-off-by: Ruben Smits --- soem_beckhoff_drivers/CMakeLists.txt | 47 +++++++++++++++++++--------- soem_beckhoff_drivers/Makefile | 1 + soem_beckhoff_drivers/package.xml | 32 +++++++++++++++++++ soem_master/CMakeLists.txt | 2 +- 4 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 soem_beckhoff_drivers/package.xml diff --git a/soem_beckhoff_drivers/CMakeLists.txt b/soem_beckhoff_drivers/CMakeLists.txt index 98ff384..3c3fafc 100644 --- a/soem_beckhoff_drivers/CMakeLists.txt +++ b/soem_beckhoff_drivers/CMakeLists.txt @@ -11,28 +11,38 @@ project(soem_beckhoff_drivers) # Do setup in case of ros package, If ROS_ROOT is set, it is # recommended to use RTT/OCL through the ros packages. -set (ROS_ROOT $ENV{ROS_ROOT} ) -if (ROS_ROOT) - include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake) - rosbuild_init() - rosbuild_find_ros_package( rtt ) - set( RTT_HINTS HINTS ${rtt_PACKAGE_PATH}/../install ) -endif() - #uncomment if you have defined messages -rosbuild_genmsg() - +if(NOT ORO_USE_ROSBUILD) + find_package(catkin REQUIRED message_generation rtt_roscomm) + add_message_files( FILES + AnalogMsg.msg + CommMsgBig.msg + CommMsg.msg + DigitalMsg.msg + EncoderMsg.msg + EncoderInMsg.msg + EncoderOutMsg.msg + PSUMsg.msg + ) + + generate_messages() +endif() # Set the CMAKE_PREFIX_PATH in case you're not using Orocos through # ROS for helping these find commands find RTT. find_package(OROCOS-RTT REQUIRED ${RTT_HINTS} ) - # Defines the orocos_* cmake macros. See that file for additional # documentation. include(${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake) -rosbuild_include(rtt_rosnode GenerateRTTtypekit) +if(ORO_USE_ROSBUILD) + rosbuild_genmsg() + rosbuild_include(rtt_rosnode GenerateRTTtypekit) +endif() ros_generate_rtt_typekit(soem_beckhoff_drivers) + +orocos_use_package(soem_master) +orocos_use_package(soem) orocos_plugin(soem_el1xxx src/soem_beckhoff_drivers.cpp src/soem_el1xxx.cpp) orocos_plugin(soem_el2xxx src/soem_beckhoff_drivers.cpp src/soem_el2xxx.cpp) @@ -43,5 +53,14 @@ orocos_plugin(soem_el6022 src/soem_beckhoff_drivers.cpp src/soem_el6022.cpp) orocos_plugin(soem_el30xx src/soem_beckhoff_drivers.cpp src/soem_el30xx.cpp) orocos_plugin(soem_el3104 src/soem_beckhoff_drivers.cpp src/soem_el3104.cpp) - - +if(NOT ORO_USE_ROSBUILD) + add_dependencies(soem_el1xxx ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el2xxx ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el4xxx ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el3102 ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el5101 ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el6022 ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el30xx ${PROJECT_NAME}_generate_messages_cpp) + add_dependencies(soem_el3104 ${PROJECT_NAME}_generate_messages_cpp) +endif() +orocos_generate_package() \ No newline at end of file diff --git a/soem_beckhoff_drivers/Makefile b/soem_beckhoff_drivers/Makefile index b75b928..99a8e3a 100644 --- a/soem_beckhoff_drivers/Makefile +++ b/soem_beckhoff_drivers/Makefile @@ -1 +1,2 @@ +EXTRA_CMAKE_FLAGS += -DORO_USE_ROSBUILD=True include $(shell rospack find mk)/cmake.mk \ No newline at end of file diff --git a/soem_beckhoff_drivers/package.xml b/soem_beckhoff_drivers/package.xml new file mode 100644 index 0000000..039c9bd --- /dev/null +++ b/soem_beckhoff_drivers/package.xml @@ -0,0 +1,32 @@ + + soem_beckhoff_drivers + 0.1.0 + + soem_beckhoff_drivers contains drivers for the ethercat beckhoff modules to work together with the soem_master package, every module creates the necessary services, dataports and properties for its own functionality. + + + Ruben Smits + + BSD + + http://wiki.ros.org/soem_master + + + Ruben Smits + + catkin + + rtt + soem + soem_master + message_generation + rtt_roscomm + + rtt + soem + soem_master + message_runtime + rtt_roscomm + + + diff --git a/soem_master/CMakeLists.txt b/soem_master/CMakeLists.txt index a922d90..202d3c1 100644 --- a/soem_master/CMakeLists.txt +++ b/soem_master/CMakeLists.txt @@ -19,4 +19,4 @@ target_link_libraries(soem_master soem_driver_factory) orocos_plugin(soem_plugin soem_plugin.cpp) orocos_install_headers( soem_driver.h soem_driver_factory.h) -orocos_generate_package() +orocos_generate_package( INCLUDE_DIRS ..)