forked from Archive/PX4-Autopilot
rtps: generation scripts: make indexing of lists possible in both Python 2 and 3
This commit is contained in:
parent
e69398c09f
commit
47f5b23419
|
@ -62,9 +62,20 @@ def check_rtps_id_uniqueness(classifier):
|
|||
|
||||
repeated_ids = dict()
|
||||
|
||||
full_send_list = dict(list(msg for msg in classifier.msgs_to_send.items()) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_send))
|
||||
full_receive_list = dict(list(msg for msg in classifier.msgs_to_receive.items()) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_receive))
|
||||
full_ignore_list = dict(list(msg for msg in classifier.msgs_to_ignore.items()) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_ignore))
|
||||
if sys.version_info[0] < 3:
|
||||
full_send_list = dict(list(msg for msg in classifier.msgs_to_send.items(
|
||||
)) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_send))
|
||||
full_receive_list = dict(list(msg for msg in classifier.msgs_to_receive.items(
|
||||
)) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_receive))
|
||||
full_ignore_list = dict(list(msg for msg in classifier.msgs_to_ignore.items(
|
||||
)) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_ignore))
|
||||
else:
|
||||
full_send_list = dict(list(msg for msg in classifier.msgs_to_send.items(
|
||||
)) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_send))
|
||||
full_receive_list = dict(list(msg for msg in classifier.msgs_to_receive.items(
|
||||
)) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_receive))
|
||||
full_ignore_list = dict(list(msg for msg in classifier.msgs_to_ignore.items(
|
||||
)) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_ignore))
|
||||
|
||||
# check if there are repeated ID's on the messages to send
|
||||
for key, value in full_send_list.items():
|
||||
|
@ -256,15 +267,15 @@ if agent and os.path.isdir(os.path.join(agent_out_dir, "idl")):
|
|||
|
||||
# uORB templates path
|
||||
uorb_templates_dir = (args.uorb_templates if os.path.isabs(args.uorb_templates)
|
||||
else os.path.join(msg_dir, args.uorb_templates))
|
||||
else os.path.join(msg_dir, args.uorb_templates))
|
||||
|
||||
# uRTPS templates path
|
||||
urtps_templates_dir = (args.urtps_templates if os.path.isabs(args.urtps_templates)
|
||||
else os.path.join(msg_dir, args.urtps_templates))
|
||||
else os.path.join(msg_dir, args.urtps_templates))
|
||||
|
||||
# parse yaml file into a map of ids
|
||||
classifier = (Classifier(os.path.abspath(args.yaml_file), msg_dir) if os.path.isabs(args.yaml_file)
|
||||
else Classifier(os.path.join(msg_dir, args.yaml_file), msg_dir))
|
||||
else Classifier(os.path.join(msg_dir, args.yaml_file), msg_dir))
|
||||
|
||||
# check if there are no ID's repeated
|
||||
check_rtps_id_uniqueness(classifier)
|
||||
|
@ -298,7 +309,10 @@ def generate_agent(out_dir):
|
|||
|
||||
if classifier.alias_msgs_to_send:
|
||||
for msg_file in classifier.alias_msgs_to_send:
|
||||
msg_alias = msg_file[0].keys()[0]
|
||||
if sys.version_info[0] < 3:
|
||||
msg_alias = msg_file[0].keys()[0]
|
||||
else:
|
||||
msg_alias = list(msg_file[0].keys())[0]
|
||||
msg_name = msg_file[1]
|
||||
if gen_idl:
|
||||
if out_dir != agent_out_dir:
|
||||
|
@ -328,7 +342,10 @@ def generate_agent(out_dir):
|
|||
|
||||
if classifier.alias_msgs_to_receive:
|
||||
for msg_file in classifier.alias_msgs_to_receive:
|
||||
msg_alias = msg_file[0].keys()[0]
|
||||
if sys.version_info[0] < 3:
|
||||
msg_alias = msg_file[0].keys()[0]
|
||||
else:
|
||||
msg_alias = list(msg_file[0].keys())[0]
|
||||
msg_name = msg_file[1]
|
||||
if gen_idl:
|
||||
if out_dir != agent_out_dir:
|
||||
|
@ -360,11 +377,11 @@ def generate_agent(out_dir):
|
|||
raise Exception("No IDL files found in %s" % idl_dir)
|
||||
if(os.path.exists(fastrtpsgen_path)):
|
||||
for idl_file in glob.glob(os.path.join(idl_dir, "*.idl")):
|
||||
ret = subprocess.call(fastrtpsgen_path + " -d " + out_dir +
|
||||
"/fastrtpsgen -example x64Linux2.6gcc " + fastrtpsgen_include + idl_file, shell=True)
|
||||
if ret:
|
||||
raise Exception(
|
||||
"fastrtpsgen failed with code error %s" % ret)
|
||||
ret = subprocess.call(fastrtpsgen_path + " -d " + out_dir +
|
||||
"/fastrtpsgen -example x64Linux2.6gcc " + fastrtpsgen_include + idl_file, shell=True)
|
||||
if ret:
|
||||
raise Exception(
|
||||
"fastrtpsgen failed with code error %s" % ret)
|
||||
else:
|
||||
raise Exception(
|
||||
"fastrtpsgen not found. Specify the location of fastrtpsgen with the -f flag")
|
||||
|
|
|
@ -178,7 +178,7 @@ def generate_idl_file(filename_msg, msg_dir, alias, outputdir, templatedir, pack
|
|||
|
||||
if (alias != ""):
|
||||
em_globals = get_em_globals(
|
||||
msg, alias , package, includepath, ids, MsgScope.NONE)
|
||||
msg, alias, package, includepath, ids, MsgScope.NONE)
|
||||
spec_short_name = alias
|
||||
else:
|
||||
em_globals = get_em_globals(
|
||||
|
@ -201,10 +201,24 @@ def generate_uRTPS_general(filename_send_msgs, filename_alias_send_msgs, filenam
|
|||
"""
|
||||
Generates source file by msg content
|
||||
"""
|
||||
send_msgs = list(os.path.join(msg_dir, msg + ".msg") for msg in filename_send_msgs)
|
||||
alias_send_msgs = list([os.path.join(msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_send_msgs)
|
||||
receive_msgs = list(os.path.join(msg_dir, msg + ".msg") for msg in filename_receive_msgs)
|
||||
alias_receive_msgs = list([os.path.join(msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_receive_msgs)
|
||||
send_msgs = list(os.path.join(msg_dir, msg + ".msg")
|
||||
for msg in filename_send_msgs)
|
||||
receive_msgs = list(os.path.join(msg_dir, msg + ".msg")
|
||||
for msg in filename_receive_msgs)
|
||||
|
||||
if sys.version_info[0] < 3:
|
||||
alias_send_msgs = list([os.path.join(
|
||||
msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_send_msgs)
|
||||
else:
|
||||
alias_send_msgs = list([os.path.join(msg_dir, msg[1] + ".msg"),
|
||||
list(msg[0].keys())[0]] for msg in filename_alias_send_msgs)
|
||||
|
||||
if sys.version_info[0] < 3:
|
||||
alias_receive_msgs = list([os.path.join(
|
||||
msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_receive_msgs)
|
||||
else:
|
||||
alias_receive_msgs = list([os.path.join(
|
||||
msg_dir, msg[1] + ".msg"), list(msg[0].keys())[0]] for msg in filename_alias_receive_msgs)
|
||||
|
||||
em_globals_list = []
|
||||
if send_msgs:
|
||||
|
|
|
@ -124,7 +124,7 @@ class Classifier():
|
|||
none_listed_msgs = []
|
||||
for msg in self.all_msgs_list:
|
||||
result = not any(
|
||||
dict.values()[0] == msg for dict in self.msg_id_map['rtps'])
|
||||
dict['msg'] == msg for dict in self.msg_id_map['rtps'])
|
||||
if result:
|
||||
none_listed_msgs.append(msg)
|
||||
|
||||
|
@ -136,7 +136,7 @@ class Classifier():
|
|||
|
||||
raise AssertionError(
|
||||
"\n%s %s: " % (error_msg, yaml_file) + ", ".join('%s' % msg for msg in none_listed_msgs) +
|
||||
"\n\nPlease add them to the yaml file with the respective ID and, if applicable, mark them" +
|
||||
"\n\nPlease add them to the yaml file with the respective ID and, if applicable, mark them " +
|
||||
"to be sent or received by the micro-RTPS bridge.\n"
|
||||
"NOTE: If the message has multi-topics (#TOPICS), these should be added as well.\n")
|
||||
|
||||
|
@ -210,9 +210,14 @@ if __name__ == "__main__":
|
|||
for msg_file in classifier.msgs_files_send) + '\n')
|
||||
else:
|
||||
if args.alias:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_send.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n')
|
||||
if sys.version_info[0] < 3:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_send.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_send.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0])
|
||||
for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_send.keys()))
|
||||
|
@ -222,9 +227,14 @@ if __name__ == "__main__":
|
|||
for msg_file in classifier.msgs_files_receive) + '\n')
|
||||
else:
|
||||
if args.alias:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_receive.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n')
|
||||
if sys.version_info[0] < 3:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_receive.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_receive.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0])
|
||||
for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_receive.keys()))
|
||||
|
@ -234,9 +244,14 @@ if __name__ == "__main__":
|
|||
for msg_file in classifier.msgs_files_ignore) + '\n')
|
||||
else:
|
||||
if args.alias:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_ignore.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n')
|
||||
if sys.version_info[0] < 3:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_ignore.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0])
|
||||
for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_ignore.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0])
|
||||
for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n')
|
||||
else:
|
||||
print (', '.join(str(msg)
|
||||
for msg in classifier.msgs_to_ignore.keys()))
|
||||
|
|
Loading…
Reference in New Issue