Omnet++ 将所有复合模块门连接至Omnet+中的子模块+;

Omnet++ 将所有复合模块门连接至Omnet+中的子模块+;,omnet++,Omnet++,我对Omnet++比较陌生。目前,我正在尝试将泛洪(简单)模块封装在复合模块中。这就是我想到的: Node.ned: module Node { gates: inout g[]; submodules: floodingModule: FloodingModule; connections allowunconnected: g++ <--> floodingModule.g++; } 网络公司 networ

我对Omnet++比较陌生。目前,我正在尝试将泛洪(简单)模块封装在复合模块中。这就是我想到的:

Node.ned:

module Node
{
    gates:
        inout g[];
    submodules:
        floodingModule: FloodingModule;
    connections allowunconnected:
        g++ <--> floodingModule.g++;
}
网络公司

network FloodingNetworkSmall {
    submodules:
        node0 : Node;
        node1 : Node;
        node2 : Node;
        node3 : Node;
        node4 : Node;
        node5 : Node;
        node6 : Node;
        node7 : Node;
        node8 : Node;
        node9 : Node;
    connections:
        node0.g++ <--> Link <--> node1.g++;
        node0.g++ <--> Link <--> node3.g++;
        node0.g++ <--> Link <--> node5.g++;
        node1.g++ <--> Link <--> node2.g++;
        node1.g++ <--> Link <--> node4.g++;
        node1.g++ <--> Link <--> node6.g++;
        node1.g++ <--> Link <--> node7.g++;
        node1.g++ <--> Link <--> node9.g++;
        node2.g++ <--> Link <--> node5.g++;
        node2.g++ <--> Link <--> node8.g++;
        node3.g++ <--> Link <--> node4.g++;
        node3.g++ <--> Link <--> node6.g++;
        node4.g++ <--> Link <--> node6.g++;
        node4.g++ <--> Link <--> node8.g++;
        node6.g++ <--> Link <--> node7.g++;
        node7.g++ <--> Link <--> node8.g++;
}
我面临的问题是,洪水只发生在创建的第一个链接上。这意味着,将复合模块门映射到子模块门时一定会出现问题,还是没有?我是不是做错了什么显而易见的事情?你需要更多的代码吗


谢谢你的建议

我甚至无法在未修改代码的情况下启动模拟,因为存在未连接的门。(文件名和模块名之间存在一些令人恼火的不一致,比如
Node
module
,但这并不重要。)

要解决此问题,您需要将
节点
模块的
连接
段更改为类似于OMNeT++附带的
路由
示例模拟的
节点
模块中的内容:

module Node
{
    gates:
        inout g[];
    submodules:
        floodingModule: FloodingNode;
    connections:
        for i=0..sizeof(g)-1 {     // <= this is the important part
            g++ <--> floodingModule.g++;
        }
}
模块节点
{
盖茨:
inout g[];
子模块:
泛洪模块:泛洪节点;
连接:

对于i=0..sizeof(g)-1{//,我甚至无法在未修改代码的情况下启动模拟,因为存在未连接的门(并且文件名和模块名之间存在一些稍微令人恼火的不一致,比如
节点
模块
,但这与问题无关。)

要解决此问题,您需要将
节点
模块的
连接
段更改为类似于OMNeT++附带的
路由
示例模拟的
节点
模块中的内容:

module Node
{
    gates:
        inout g[];
    submodules:
        floodingModule: FloodingNode;
    connections:
        for i=0..sizeof(g)-1 {     // <= this is the important part
            g++ <--> floodingModule.g++;
        }
}
模块节点
{
盖茨:
inout g[];
子模块:
泛洪模块:泛洪节点;
连接:

对于i=0..sizeof(g)-1{//非常感谢你的回答!它现在起作用了。我知道,命名方案目前不是很好。谢谢你的提示和改进意见。我会考虑它们。非常感谢你的回答!它现在起作用了。我知道,命名方案现在不太好。谢谢你的提示和改进意见。我会考虑它们o账户。
module Node
{
    gates:
        inout g[];
    submodules:
        floodingModule: FloodingNode;
    connections:
        for i=0..sizeof(g)-1 {     // <= this is the important part
            g++ <--> floodingModule.g++;
        }
}