Skip to content

Commit

Permalink
add builtin Duration/Time messages
Browse files Browse the repository at this point in the history
  • Loading branch information
dirk-thomas committed Aug 25, 2014
1 parent e1f8cc0 commit 81a84aa
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 1 deletion.
15 changes: 15 additions & 0 deletions builtin_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8.3)

project(builtin_msgs)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

find_package(ament_cmake REQUIRED)
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
"msg/Duration.msg"
"msg/Time.msg"
)

ament_package()
2 changes: 2 additions & 0 deletions builtin_msgs/msg/Duration.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
int32 sec
uint32 nanosec
2 changes: 2 additions & 0 deletions builtin_msgs/msg/Time.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
int32 sec
uint32 nanosec
14 changes: 14 additions & 0 deletions builtin_msgs/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<package format="2">
<name>builtin_msgs</name>
<version>0.0.0</version>
<description>A package containing builtin message definitions.</description>
<maintainer email="dthomas@osrfoundation.org">Dirk Thomas</maintainer>
<license>Apache License 2.0</license>

<buildtool_depend>ament_cmake</buildtool_depend>

<buildtool_depend>rosidl_default_generators</buildtool_depend>

<exec_depend>rosidl_default_runtime</exec_depend>
</package>
1 change: 1 addition & 0 deletions simple_msgs/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ find_package(ament_cmake REQUIRED)
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
"msg/AllBuiltinTypes.msg"
"msg/AllDynamicArrayTypes.msg"
"msg/AllPrimitiveConstants.msg"
"msg/AllPrimitiveTypes.msg"
Expand Down
2 changes: 2 additions & 0 deletions simple_msgs/msg/AllBuiltinTypes.msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
builtin_msgs/Duration my_time
builtin_msgs/Time my_duration
3 changes: 3 additions & 0 deletions simple_msgs/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@

<buildtool_depend>rosidl_default_generators</buildtool_depend>

<build_depend>builtin_msgs</build_depend>

<exec_depend>builtin_msgs</exec_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
</package>
2 changes: 1 addition & 1 deletion userland/include/userland/command_line_arguments.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <string>


const char * valid_message_args[] = {"counter", "all_primitive", "all_static_array", "all_dynamic_array", "nested", "string", "all_primitive_defaults"};
const char * valid_message_args[] = {"counter", "all_primitive", "all_static_array", "all_dynamic_array", "nested", "string", "all_primitive_defaults", "all_builtin"};

void print_message_usage()
{
Expand Down
11 changes: 11 additions & 0 deletions userland/src/publisher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "rclcpp/Node.h"
#include "rclcpp/Publisher.h"

#include "simple_msgs/AllBuiltinTypes.h"
#include "simple_msgs/AllDynamicArrayTypes.h"
#include "simple_msgs/AllPrimitiveTypes.h"
#include "simple_msgs/AllStaticArrayTypes.h"
Expand Down Expand Up @@ -145,6 +146,14 @@ template<typename T>
void set_empty(T& ros_msg, uint32_t i)
{}

void set_builtin(simple_msgs::AllBuiltinTypes& ros_msg, uint32_t i)
{
ros_msg.m_duration.sec = -i;
ros_msg.m_duration.nanosec = i;
ros_msg.m_time.sec = - 2 * i;
ros_msg.m_time.nanosec = 2 * i;
}

int main(int argc, char** argv)
{
if (has_argument(argv, argv + argc, "--help")) {
Expand All @@ -170,6 +179,8 @@ int main(int argc, char** argv)
return publish<simple_msgs::String>(node, &set_string);
} else if (msg_arg == valid_message_args[6]) {
return publish<simple_msgs::AllPrimitiveTypes>(node, &set_empty<simple_msgs::AllPrimitiveTypes>);
} else if (msg_arg == valid_message_args[7]) {
return publish<simple_msgs::AllBuiltinTypes>(node, &set_builtin);
}


Expand Down
8 changes: 8 additions & 0 deletions userland/src/subscriber.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "rclcpp/Publisher.h"
#include "rclcpp/executor/SingleThreadExecutor.h"

#include "simple_msgs/AllBuiltinTypes.h"
#include "simple_msgs/AllDynamicArrayTypes.h"
#include "simple_msgs/AllPrimitiveTypes.h"
#include "simple_msgs/AllStaticArrayTypes.h"
Expand Down Expand Up @@ -104,6 +105,11 @@ void print_string(const simple_msgs::String *msg)
std::cout << "Got message: " << msg->data << std::endl;
}

void print_builtin(const simple_msgs::String *msg)
{
std::cout << "Got message: " << msg->my_duration.sec << ":" << msg->my_duration.nanosec << ", " << msg->my_time.sec << ":" << msg->my_time.nanosec << std::endl;
}

int main(int argc, char** argv)
{
if (has_argument(argv, argv + argc, "--help")) {
Expand All @@ -127,6 +133,8 @@ int main(int argc, char** argv)
subscribe<simple_msgs::Nested>(node, &print_nested);
} else if (msg_arg == valid_message_args[5]) {
subscribe<simple_msgs::String>(node, &print_string);
} else if (msg_arg == valid_message_args[7]) {
subscribe<simple_msgs::AllBuiltinTypes>(node, &print_builtin);
} else {
std::cerr << "unsupported '--msg' argument '" << msg_arg << "'" << std::endl;
return 1;
Expand Down

0 comments on commit 81a84aa

Please sign in to comment.