in tools/rossim/rosigen.py [0:0]
def _load_values(self, msg, val):
for field in msg.get_fields_and_field_types():
field_val = getattr(msg, field)
if type(field_val) in self.PRIMITIVE_TYPES:
self._set_value(msg, field, val[field])
elif self._is_primitive_list(field_val):
length = len(field_val)
if length == 0:
# dynamic size take length of input
length = len(val[field])
for i in range(length):
self._set_value(field_val, f"[{i}]", val[field][i])
elif self._is_list(field_val):
for i in range(len(field_val)):
self._load_values(field_val[i], val[field][i])
else:
self._load_values(field_val, val[field])