From ac20f172de65bb36c04a9c2b5999ddc8451fb21c Mon Sep 17 00:00:00 2001 From: Russ Webber Date: Sat, 2 Nov 2024 15:59:15 +1100 Subject: [PATCH] fix(set_message): encode strings if field is bytes --- rosidl_runtime_py/set_message.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rosidl_runtime_py/set_message.py b/rosidl_runtime_py/set_message.py index 5e7921e..a2d470f 100644 --- a/rosidl_runtime_py/set_message.py +++ b/rosidl_runtime_py/set_message.py @@ -70,6 +70,8 @@ def set_message_fields_internal( value = numpy.array(field_value, dtype=field.dtype) elif type(field_value) is field_type: value = field_value + elif field_type is bytes and type(field_value) is str: + value = field_value.encode() # We can't import these types directly, so we use the qualified class name to # distinguish them from other fields elif qualified_class_name == 'std_msgs.msg._header.Header' and \