如何在 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
我创建的网络模型如下:
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