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

时间:2018-05-03 11:27:57

标签: omnet++

我对Omnet ++相对较新。目前我正在尝试在复合模块中封装泛洪(简单)模块。这就是我想出的:

Node.ned:

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

FloodingModule.ned

simple FloodingNode
{
    parameters:
        bool sendInitialMessage = default(false);
    gates:
        inout g[] @loose;
}

Network.ned

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++;
}

我在floodingModule的initialize方法中调用泛洪,如下所示:

    for (GateIterator i(this); !i.end(); i++) {
        cGate *gate = *i;
        if (gate->getType() == cGate::OUTPUT) {
            SimpleMessage *csmsg = smsg->dup();
            send(csmsg, gate);
        }
    }

我面临的问题是,洪水只发生在创建的第一个链路上。这意味着,必须存在将复合模块门映射到子模块门的问题吗?我在这里做错了哪个很明显?你需要更多代码吗?

感谢您的任何建议!

0 个答案:

没有答案