in tools/rossim/rosigen.py [0:0]
def _get_fields(self, msg):
obj = {}
for field in msg.get_fields_and_field_types():
field_val = getattr(msg, field)
if type(field_val) in self.PRIMITIVE_TYPES:
obj[field] = None # No further auto-completion
elif self._is_primitive_list(field_val):
obj[field] = {}
for i in range(len(field_val)):
obj[field][f"[{i}]"] = None
elif self._is_list(field_val):
obj[field] = {}
for i in range(len(field_val)):
obj[field][f"[{i}]"] = self._get_fields(field_val[i])
else:
obj[field] = self._get_fields(field_val)
return obj