in tools/rossim/rosigen.py [0:0]
def _set_value(self, msg, field, val):
if self._is_list(msg):
match = re.match(r"^\[(\d+)\]$", field)
if not match:
raise Exception("error: invalid index")
index = int(match.groups(1)[0])
if len(msg) <= index:
# for dynamic sized arrays first grow vals
for _i in range(0, index - len(msg) + 1):
msg.append(val)
val = self._check_primitive_type(msg[index], val)
msg[index] = type(msg[index])(val)
else:
field_val = getattr(msg, field)
val = self._check_primitive_type(field_val, val)
setattr(msg, field, type(field_val)(val))