From faf19f3a2c3f529a63c206aa1c0133d687e88f48 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 Signed-off-by: Russ Webber --- 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 \