From 8a9020373449f8fd18c7c69aad4347c76a427c5a Mon Sep 17 00:00:00 2001 From: Dirk Thomas Date: Wed, 21 Nov 2018 15:22:43 -0800 Subject: [PATCH] update includes and type mapping --- .../resource/msg__type_support_c.cpp.em | 23 +++++++++++++++---- .../resource/srv__type_support_c.cpp.em | 6 ++--- ...msg__rosidl_typesupport_connext_cpp.hpp.em | 9 +++++++- .../resource/srv__type_support.cpp.em | 9 +++++++- 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/rosidl_typesupport_connext_c/resource/msg__type_support_c.cpp.em b/rosidl_typesupport_connext_c/resource/msg__type_support_c.cpp.em index be86d3c..300611f 100644 --- a/rosidl_typesupport_connext_c/resource/msg__type_support_c.cpp.em +++ b/rosidl_typesupport_connext_c/resource/msg__type_support_c.cpp.em @@ -32,9 +32,15 @@ #include "rosidl_typesupport_connext_cpp/message_type_support.h" #include "@(pkg)/msg/rosidl_typesupport_connext_c__visibility_control.h" -@{header_file_name = get_header_filename_from_msg_name(type)}@ -#include "@(pkg)/@(subfolder)/@(header_file_name)__struct.h" -#include "@(pkg)/@(subfolder)/@(header_file_name)__functions.h" +@{ +header_filename = get_header_filename_from_msg_name(spec.base_type.type) +if header_filename.endswith('__request'): + header_filename = header_filename[:-9] +elif header_filename.endswith('__response'): + header_filename = header_filename[:-10] +}@ +#include "@(pkg)/@(subfolder)/@(header_filename)__struct.h" +#include "@(pkg)/@(subfolder)/@(header_filename)__functions.h" #ifndef _WIN32 # pragma GCC diagnostic push @@ -71,6 +77,10 @@ for field in spec.fields: keys.add('rosidl_generator_c/string_functions.h') else: header_file_name = get_header_filename_from_msg_name(field.type.type) + if header_file_name.endswith('__request'): + header_file_name = header_file_name[:-9] + elif header_file_name.endswith('__response'): + header_file_name = header_file_name[:-10] keys.add('%s/msg/%s__functions.h' % (field.type.pkg_name, header_file_name)) for key in keys: if key not in includes: @@ -253,8 +263,11 @@ if field.type.type == 'string': array_init = 'rosidl_generator_c__String__Sequence__init' array_fini = 'rosidl_generator_c__String__Sequence__fini' elif field.type.is_primitive_type(): - array_init = 'rosidl_generator_c__{field.type.type}__Sequence__init'.format(**locals()) - array_fini = 'rosidl_generator_c__{field.type.type}__Sequence__fini'.format(**locals()) + type_ = field.type.type + if type_ == 'char': + type_ = 'uint8' + array_init = 'rosidl_generator_c__{type_}__Sequence__init'.format(**locals()) + array_fini = 'rosidl_generator_c__{type_}__Sequence__fini'.format(**locals()) else: array_init = '{field.type.pkg_name}__msg__{field.type.type}__Sequence__init'.format(**locals()) array_fini = '{field.type.pkg_name}__msg__{field.type.type}__Sequence__fini'.format(**locals()) diff --git a/rosidl_typesupport_connext_c/resource/srv__type_support_c.cpp.em b/rosidl_typesupport_connext_c/resource/srv__type_support_c.cpp.em index 0d5ae3a..0d03a5e 100644 --- a/rosidl_typesupport_connext_c/resource/srv__type_support_c.cpp.em +++ b/rosidl_typesupport_connext_c/resource/srv__type_support_c.cpp.em @@ -45,10 +45,8 @@ #include "rosidl_typesupport_connext_c/identifier.h" #include "@(spec.pkg_name)/msg/rosidl_typesupport_connext_c__visibility_control.h" -@{req_header_file_name = get_header_filename_from_msg_name(spec.srv_name + '__request')}@ -@{res_header_file_name = get_header_filename_from_msg_name(spec.srv_name + '__response')}@ -#include "@(spec.pkg_name)/@(subfolder)/@(req_header_file_name).h" -#include "@(spec.pkg_name)/@(subfolder)/@(res_header_file_name).h" +@{header_file_name = get_header_filename_from_msg_name(spec.srv_name)}@ +#include "@(spec.pkg_name)/@(subfolder)/@(header_file_name).h" #include "@(spec.pkg_name)/@(subfolder)/dds_connext/@(spec.srv_name)_Request_Support.h" #include "@(spec.pkg_name)/@(subfolder)/@(get_header_filename_from_msg_name(spec.srv_name + '_Request'))__rosidl_typesupport_connext_c.h" diff --git a/rosidl_typesupport_connext_cpp/resource/msg__rosidl_typesupport_connext_cpp.hpp.em b/rosidl_typesupport_connext_cpp/resource/msg__rosidl_typesupport_connext_cpp.hpp.em index c504763..5751548 100644 --- a/rosidl_typesupport_connext_cpp/resource/msg__rosidl_typesupport_connext_cpp.hpp.em +++ b/rosidl_typesupport_connext_cpp/resource/msg__rosidl_typesupport_connext_cpp.hpp.em @@ -29,7 +29,14 @@ header_guard_variable = '__'.join([x.upper() for x in header_guard_parts]) + '_' #include "@(spec.base_type.pkg_name)/msg/rosidl_typesupport_connext_cpp__visibility_control.h" -#include "@(spec.base_type.pkg_name)/@(subfolder)/@(get_header_filename_from_msg_name(spec.base_type.type))__struct.hpp" +@{ +header_filename = get_header_filename_from_msg_name(spec.base_type.type) +if header_filename.endswith('__request'): + header_filename = header_filename[:-9] +elif header_filename.endswith('__response'): + header_filename = header_filename[:-10] +}@ +#include "@(spec.base_type.pkg_name)/@(subfolder)/@(header_filename)__struct.hpp" #ifndef _WIN32 # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wunused-parameter" diff --git a/rosidl_typesupport_connext_cpp/resource/srv__type_support.cpp.em b/rosidl_typesupport_connext_cpp/resource/srv__type_support.cpp.em index 3bf71bd..ccf3170 100644 --- a/rosidl_typesupport_connext_cpp/resource/srv__type_support.cpp.em +++ b/rosidl_typesupport_connext_cpp/resource/srv__type_support.cpp.em @@ -39,7 +39,14 @@ #include "rosidl_typesupport_connext_cpp/service_type_support.h" #include "rosidl_typesupport_connext_cpp/service_type_support_decl.hpp" -#include "@(spec.pkg_name)/@(subfolder)/@(get_header_filename_from_msg_name(spec.srv_name))__struct.hpp" +@{ +header_filename = get_header_filename_from_msg_name(spec.srv_name) +if header_filename.endswith('__request'): + header_filename = header_filename[:-9] +elif header_filename.endswith('__response'): + header_filename = header_filename[:-10] +}@ +#include "@(spec.pkg_name)/@(subfolder)/@(header_filename)__struct.hpp" #include "@(spec.pkg_name)/@(subfolder)/dds_connext/@(spec.srv_name)_Request_Support.h" #include "@(spec.pkg_name)/@(subfolder)/@(get_header_filename_from_msg_name(spec.srv_name + '_Request'))__rosidl_typesupport_connext_cpp.hpp" #include "@(spec.pkg_name)/@(subfolder)/dds_connext/@(spec.srv_name)_Response_Support.h"