diff --git a/rosidl_generator_py/CMakeLists.txt b/rosidl_generator_py/CMakeLists.txt index e5ff834f..e28afa99 100644 --- a/rosidl_generator_py/CMakeLists.txt +++ b/rosidl_generator_py/CMakeLists.txt @@ -49,6 +49,7 @@ if(BUILD_TESTING) msg/BuiltinTypeSequencesIdl.idl msg/StringArrays.msg msg/Property.msg + srv/GetBuffer.srv ADD_LINTER_TESTS SKIP_INSTALL ) diff --git a/rosidl_generator_py/resource/_msg_support.c.em b/rosidl_generator_py/resource/_msg_support.c.em index 62941b29..cc992179 100644 --- a/rosidl_generator_py/resource/_msg_support.c.em +++ b/rosidl_generator_py/resource/_msg_support.c.em @@ -29,14 +29,6 @@ def primitive_msg_type_to_c(type_): return BASIC_IDL_TYPES_TO_C[type_.typename] -# Check if this message has any uint8[] buffer fields -has_buffer_fields = False -for member in message.structure.members: - if isinstance(member.type, UnboundedSequence) and isinstance(member.type.value_type, BasicType) and member.type.value_type.typename == 'uint8': - has_buffer_fields = True - break - - include_parts = [package_name] + list(interface_path.parents[0].parts) + [ 'detail', convert_camel_case_to_lower_case_underscore(interface_path.stem)] include_base = '/'.join(include_parts) @@ -44,9 +36,8 @@ include_base = '/'.join(include_parts) header_files = [ 'Python.h', 'stdbool.h', + 'stdint.h', ] -if has_buffer_fields: - header_files.append('stdint.h') header_files += [ 'numpy/ndarrayobject.h', 'rosidl_runtime_c/visibility_control.h', diff --git a/rosidl_generator_py/srv/GetBuffer.srv b/rosidl_generator_py/srv/GetBuffer.srv new file mode 100644 index 00000000..51598241 --- /dev/null +++ b/rosidl_generator_py/srv/GetBuffer.srv @@ -0,0 +1,2 @@ +--- +uint8[] res