def generate_client(out_dir): global fastrtps_version # Rename work in the default path if default_client_out != out_dir: def_file = os.path.join(default_client_out, "microRTPS_client.cpp") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = os.path.join(default_client_out, "microRTPS_transport.cpp") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = os.path.join(default_client_out, "microRTPS_transport.h") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".h", ".h_")) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, uorb_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_CLIENT_TEMPL_FILE) # Final steps to install client cp_wildcard(os.path.join(urtps_templates_dir, "microRTPS_transport.*"), out_dir) return 0
def generate_client(out_dir): px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, uorb_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_CLIENT_TEMPL_FILE) # Final steps to install client cp_wildcard(urtps_templates_dir + "/microRTPS_transport.*", client_out_dir) return 0
def generate_client(out_dir): # Rename work in the default path if default_client_out != out_dir: def_file = default_client_out + "/microRTPS_client.cpp" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = default_client_out + "/microRTPS_transport.cpp" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = default_client_out + "/microRTPS_transport.h" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".h", ".h_")) px_generate_uorb_topic_files.generate_uRTPS_general(msg_files_send, msg_files_receive, out_dir, uorb_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_CLIENT_TEMPL_FILE) # Final steps to install client cp_wildcard(urtps_templates_dir + "/microRTPS_transport.*", out_dir) return 0
def generate_agent(out_dir): if msg_files_send: for msg_file in msg_files_send: px_generate_uorb_topic_files.generate_idl_file(msg_file, out_dir + "/idl", urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_PUBLISHER_H_TEMPL_FILE) if msg_files_receive: for msg_file in msg_files_receive: px_generate_uorb_topic_files.generate_idl_file(msg_file, out_dir + "/idl", urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_SUBSCRIBER_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TOPICS_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TOPICS_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_CMAKELIST_TEMPL_FILE) # Final steps to install agent mkdir_p(agent_out_dir + "/fastrtpsgen") os.chdir(agent_out_dir + "/fastrtpsgen") for idl_file in glob.glob(agent_out_dir + "/idl/*.idl"): ret = subprocess.call(fastrtpsgen_path + " -d " + agent_out_dir + "/fastrtpsgen -example x64Linux2.6gcc " + idl_file, shell=True) if ret: raise Exception("fastrtpsgen not found. Specify the location of fastrtpsgen with the -f flag") rm_wildcard(agent_out_dir + "/fastrtpsgen/*PubSubMain*") rm_wildcard(agent_out_dir + "/fastrtpsgen/makefile*") rm_wildcard(agent_out_dir + "/fastrtpsgen/*Publisher*") rm_wildcard(agent_out_dir + "/fastrtpsgen/*Subscriber*") for f in glob.glob(agent_out_dir + "/fastrtpsgen/*.cxx"): os.rename(f, f.replace(".cxx", ".cpp")) cp_wildcard(agent_out_dir + "/fastrtpsgen/*", agent_out_dir) if os.path.isdir(agent_out_dir + "/fastrtpsgen"): shutil.rmtree(agent_out_dir + "/fastrtpsgen") cp_wildcard(urtps_templates_dir + "/microRTPS_transport.*", agent_out_dir) os.rename(agent_out_dir + "/microRTPS_agent_CMakeLists.txt", agent_out_dir + "/CMakeLists.txt") mkdir_p(agent_out_dir + "/build") return 0
def generate_client(out_dir): # Rename work in the default path if default_client_out != out_dir: def_file = os.path.join(default_client_out, "microRTPS_client.cpp") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = os.path.join(default_client_out, "microRTPS_transport.cpp") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = os.path.join(default_client_out, "microRTPS_transport.h") if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".h", ".h_")) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msg_files_send, classifier.msg_files_receive, out_dir, uorb_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_CLIENT_TEMPL_FILE) # Final steps to install client cp_wildcard(os.path.join(urtps_templates_dir, "microRTPS_transport.*"), out_dir) return 0
def generate_client(out_dir): # Rename work in the default path if default_client_out != out_dir: def_file = default_client_out + "/microRTPS_client.cpp" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = default_client_out + "/microRTPS_transport.cpp" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".cpp", ".cpp_")) def_file = default_client_out + "/microRTPS_transport.h" if os.path.isfile(def_file): os.rename(def_file, def_file.replace(".h", ".h_")) px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, uorb_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_CLIENT_TEMPL_FILE) # Final steps to install client cp_wildcard(urtps_templates_dir + "/microRTPS_transport.*", out_dir) return 0
def generate_agent(out_dir): global fastrtpsgen_version if classifier.msgs_to_send: for msg_file in classifier.msgs_to_send: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file(msg_file, msg_dir, "", os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_file, msg_dir, "", idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_PUBLISHER_H_TEMPL_FILE) if classifier.alias_msgs_to_send: for msg_file in classifier.alias_msgs_to_send: 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: px_generate_uorb_topic_files.generate_idl_file(msg_name, msg_dir, msg_alias, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_name, msg_dir, msg_alias, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_PUBLISHER_H_TEMPL_FILE) if classifier.msgs_to_receive: for msg_file in classifier.msgs_to_receive: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file(msg_file, msg_dir, "", os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_file, msg_dir, "", idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_SUBSCRIBER_H_TEMPL_FILE) if classifier.alias_msgs_to_receive: for msg_file in classifier.alias_msgs_to_receive: 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: px_generate_uorb_topic_files.generate_idl_file(msg_name, msg_dir, msg_alias, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_name, msg_dir, msg_alias, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtpsgen_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_SUBSCRIBER_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_AGENT_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_AGENT_TOPICS_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_AGENT_TOPICS_SRC_TEMPL_FILE) if cmakelists: px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtpsgen_version, ros2_distro, uRTPS_AGENT_CMAKELISTS_TEMPL_FILE) # Final steps to install agent mkdir_p(os.path.join(out_dir, "fastrtpsgen")) prev_cwd_path = os.getcwd() os.chdir(os.path.join(out_dir, "fastrtpsgen")) if not glob.glob(os.path.join(idl_dir, "*.idl")): raise Exception("No IDL files found in %s" % idl_dir) for idl_file in glob.glob(os.path.join(idl_dir, "*.idl")): try: ret = subprocess.check_call(fastrtpsgen_path + " -d " + out_dir + "/fastrtpsgen -example x64Linux2.6gcc " + fastrtpsgen_include + idl_file, shell=True) except OSError: raise rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*PubSubMain*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/makefile*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Publisher*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Subscriber*")) for f in glob.glob(os.path.join(out_dir, "fastrtpsgen/*.cxx")): os.rename(f, f.replace(".cxx", ".cpp")) cp_wildcard(os.path.join(out_dir, "fastrtpsgen/*"), out_dir) if os.path.isdir(os.path.join(out_dir, "fastrtpsgen")): shutil.rmtree(os.path.join(out_dir, "fastrtpsgen")) cp_wildcard(os.path.join(urtps_templates_dir, "microRTPS_transport.*"), agent_out_dir) if cmakelists: os.rename(os.path.join(out_dir, "microRTPS_agent_CMakeLists.txt"), os.path.join(out_dir, "CMakeLists.txt")) if (mkdir_build): mkdir_p(os.path.join(out_dir, "build")) os.chdir(prev_cwd_path) return 0
def generate_agent(out_dir): if classifier.msg_files_send: for msg_file in classifier.msg_files_send: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file(msg_file, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_file, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_PUBLISHER_H_TEMPL_FILE) if classifier.msg_files_receive: for msg_file in classifier.msg_files_receive: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file(msg_file, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file(msg_file, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file(msg_file, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_SUBSCRIBER_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msg_files_send, classifier.msg_files_receive, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_AGENT_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msg_files_send, classifier.msg_files_receive, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_AGENT_TOPICS_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msg_files_send, classifier.msg_files_receive, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_AGENT_TOPICS_SRC_TEMPL_FILE) if cmakelists: px_generate_uorb_topic_files.generate_uRTPS_general(classifier.msg_files_send, classifier.msg_files_receive, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, uRTPS_AGENT_CMAKELISTS_TEMPL_FILE) # Final steps to install agent mkdir_p(os.path.join(out_dir, "fastrtpsgen")) prev_cwd_path = os.getcwd() os.chdir(os.path.join(out_dir, "fastrtpsgen")) if not glob.glob(os.path.join(idl_dir, "*.idl")): raise Exception("No IDL files found in %s" % idl_dir) 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 not found. Specify the location of fastrtpsgen with the -f flag") rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*PubSubMain*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/makefile*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Publisher*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Subscriber*")) for f in glob.glob(os.path.join(out_dir, "fastrtpsgen/*.cxx")): os.rename(f, f.replace(".cxx", ".cpp")) cp_wildcard(os.path.join(out_dir, "fastrtpsgen/*"), out_dir) if os.path.isdir(os.path.join(out_dir, "fastrtpsgen")): shutil.rmtree(os.path.join(out_dir, "fastrtpsgen")) cp_wildcard(os.path.join(urtps_templates_dir, "microRTPS_transport.*"), agent_out_dir) if cmakelists: os.rename(os.path.join(out_dir, "microRTPS_agent_CMakeLists.txt"), os.path.join(out_dir, "CMakeLists.txt")) if (mkdir_build): mkdir_p(os.path.join(out_dir, "build")) os.chdir(prev_cwd_path) return 0
def generate_agent(out_dir): global fastrtps_version if classifier.msgs_to_send: for msg_file in classifier.msgs_to_send: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file( msg_file, msg_dir, "", os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file( msg_file, msg_dir, "", idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file( msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_PUBLISHER_H_TEMPL_FILE) if classifier.alias_msgs_to_send: for msg_file in classifier.alias_msgs_to_send: msg_alias = list(msg_file[0].keys())[0] msg_name = msg_file[1] if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file( msg_name, msg_dir, msg_alias, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file( msg_name, msg_dir, msg_alias, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file( msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_PUBLISHER_H_TEMPL_FILE) if classifier.msgs_to_receive: for msg_file in classifier.msgs_to_receive: if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file( msg_file, msg_dir, "", os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file( msg_file, msg_dir, "", idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file( msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_file, msg_dir, "", out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_SUBSCRIBER_H_TEMPL_FILE) if classifier.alias_msgs_to_receive: for msg_file in classifier.alias_msgs_to_receive: msg_alias = list(msg_file[0].keys())[0] msg_name = msg_file[1] if gen_idl: if out_dir != agent_out_dir: px_generate_uorb_topic_files.generate_idl_file( msg_name, msg_dir, msg_alias, os.path.join(out_dir, "/idl"), urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) else: px_generate_uorb_topic_files.generate_idl_file( msg_name, msg_dir, msg_alias, idl_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, fastrtps_version, ros2_distro, classifier.msg_id_map) px_generate_uorb_topic_files.generate_topic_file( msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_name, msg_dir, msg_alias, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_SUBSCRIBER_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_AGENT_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_TIMESYNC_CPP_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_TIMESYNC_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_AGENT_TOPICS_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_AGENT_TOPICS_SRC_TEMPL_FILE) if cmakelists: px_generate_uorb_topic_files.generate_uRTPS_general( classifier.msgs_to_send, classifier.alias_msgs_to_send, classifier.msgs_to_receive, classifier.alias_msgs_to_receive, msg_dir, out_dir, urtps_templates_dir, package, px_generate_uorb_topic_files.INCL_DEFAULT, classifier.msg_id_map, fastrtps_version, ros2_distro, uRTPS_AGENT_CMAKELISTS_TEMPL_FILE) # Final steps to install agent mkdir_p(os.path.join(out_dir, "fastrtpsgen")) prev_cwd_path = os.getcwd() os.chdir(os.path.join(out_dir, "fastrtpsgen")) if not glob.glob(os.path.join(idl_dir, "*.idl")): raise Exception("No IDL files found in %s" % idl_dir) # If it is generating the bridge code for interfacing with ROS2, then set # the '-typeros2' option in fastrtpsgen. # .. note:: This is only available in FastRTPSGen 1.0.4 and above gen_ros2_typename = "" if ros2_distro and ros2_distro in [ 'dashing', 'eloquent', 'foxy' ] and fastrtpsgen_version >= version.Version("1.0.4"): gen_ros2_typename = "-typeros2 " for idl_file in glob.glob(os.path.join(idl_dir, "*.idl")): try: ret = subprocess.check_call( fastrtpsgen_path + " -d " + out_dir + "/fastrtpsgen -example x64Linux2.6gcc " + gen_ros2_typename + fastrtpsgen_include + idl_file, shell=True) except OSError: raise rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*PubSubMain*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/makefile*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Publisher*")) rm_wildcard(os.path.join(out_dir, "fastrtpsgen/*Subscriber*")) for f in glob.glob(os.path.join(out_dir, "fastrtpsgen/*.cxx")): os.rename(f, f.replace(".cxx", ".cpp")) cp_wildcard(os.path.join(out_dir, "fastrtpsgen/*"), out_dir) if os.path.isdir(os.path.join(out_dir, "fastrtpsgen")): shutil.rmtree(os.path.join(out_dir, "fastrtpsgen")) cp_wildcard(os.path.join(urtps_templates_dir, "microRTPS_transport.*"), agent_out_dir) if cmakelists: os.rename(os.path.join(out_dir, "microRTPS_agent_CMakeLists.txt"), os.path.join(out_dir, "CMakeLists.txt")) if (mkdir_build): mkdir_p(os.path.join(out_dir, "build")) os.chdir(prev_cwd_path) return 0
def generate_agent(out_dir): if msg_files_send: for msg_file in msg_files_send: px_generate_uorb_topic_files.generate_idl_file( msg_file, out_dir + "/idl", urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT) px_generate_uorb_topic_files.generate_topic_file( msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_PUBLISHER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_PUBLISHER_H_TEMPL_FILE) if msg_files_receive: for msg_file in msg_files_receive: px_generate_uorb_topic_files.generate_idl_file( msg_file, out_dir + "/idl", urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT) px_generate_uorb_topic_files.generate_topic_file( msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_SUBSCRIBER_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_topic_file( msg_file, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_SUBSCRIBER_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TOPICS_H_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_TOPICS_SRC_TEMPL_FILE) px_generate_uorb_topic_files.generate_uRTPS_general( msg_files_send, msg_files_receive, out_dir, urtps_templates_dir, px_generate_uorb_topic_files.INCL_DEFAULT, uRTPS_AGENT_CMAKELIST_TEMPL_FILE) # Final steps to install agent mkdir_p(agent_out_dir + "/fastrtpsgen") os.chdir(agent_out_dir + "/fastrtpsgen") for idl_file in glob.glob(agent_out_dir + "/idl/*.idl"): ret = subprocess.call(fastrtpsgen_path + " -d " + agent_out_dir + "/fastrtpsgen -example x64Linux2.6gcc " + idl_file, shell=True) if ret: raise Exception( "fastrtpsgen not found. Specify the location of fastrtpsgen with the -f flag" ) rm_wildcard(agent_out_dir + "/fastrtpsgen/*PubSubMain*") rm_wildcard(agent_out_dir + "/fastrtpsgen/makefile*") rm_wildcard(agent_out_dir + "/fastrtpsgen/*Publisher*") rm_wildcard(agent_out_dir + "/fastrtpsgen/*Subscriber*") for f in glob.glob(agent_out_dir + "/fastrtpsgen/*.cxx"): os.rename(f, f.replace(".cxx", ".cpp")) cp_wildcard(agent_out_dir + "/fastrtpsgen/*", agent_out_dir) if os.path.isdir(agent_out_dir + "/fastrtpsgen"): shutil.rmtree(agent_out_dir + "/fastrtpsgen") cp_wildcard(urtps_templates_dir + "/microRTPS_transport.*", agent_out_dir) os.rename(agent_out_dir + "/microRTPS_agent_CMakeLists.txt", agent_out_dir + "/CMakeLists.txt") mkdir_p(agent_out_dir + "/build") return 0