如何在 omnet++ 中获取模型的节点?

How can I get the nodes of my model in omnet++?

我创建的网络模型如下:

    httpController: HttpController {
        parameters:
            @display("is=s;p=98.8575,423.675;i=block/cogwheel");
    }

    host[numclients]: StandardHost;
    server1: StandardHost {
        @display("i=device/server;p=1400.145,223.94249");
    }

    server2: StandardHost {
        parameters:
            @display("i=device/server;p=1400.145,365.16748");
    }
    server3: StandardHost {
        parameters:
            @display("i=device/server;p=1400.145,488.235");
    }
    attacker1: StandardHost{
        parameters:
        @display("i=device/server;color=red");}
    attacker2: StandardHost{
         parameters:
        @display("i=device/server;color=red");}
    router0: Router {
        parameters:
            @display("i=abstract/router;p=1216.5525,365.16748");
    }
    router[numclients]: Router;
    visualizer: IntegratedCanvasVisualizer {
        @display("p=98.8575,254.205");
    }
    attacker1_router:Router;
    attacker2_router:Router;

我还在他们的 class:

中使用以下 c++ 函数创建了一个简单的模块
void CoIDS::askForHelp(){
cTopology topo;
const char *typeNames[3];
typeNames[0] = "router";
typeNames[1] = "host";
typeNames[2] = nullptr;
topo.extractByNedTypeName(typeNames);

这段代码是获取模型中所有的路由器和主机节点。 问题是我在 topo.extractByNedTypeName(typeNames) 处出错; 说 typeNames 有错误,有时是关于方法本身的错误。你能帮我吗?任何人都会帮助它,将不胜感激..

extractByNedTypeName() 定义为:

virtual void extractByNedTypeName (const std::vector<std::string>& nedTypeNames);

所以它需要 std::vector,而不是字符数组。
参考:OMNeT++ Simulation Library