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
Exemplo n.º 8
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
Exemplo n.º 9
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