Gate未连接到子模块错误

时间:2015-06-21 16:19:58

标签: omnet++

我正在尝试创建一个包含六个节点的网络,如下所示

module Node
{
    parameters:
        @display("i=abstract/router_vs");
    gates:
       inout g[];

}

channel Link extends ned.DatarateChannel
{
    parameters:
        int cost = default(0);
}

//
// Generated network with random topology (6 nodes, 8 edges, seed=100).
//
network net
{
    @display("bgb=478,329");
    submodules:
        S: Node {
            @display("p=19,87;is=s");
        }
        n1: Node {
            @display("p=130,142;is=s");
        }
        n2: Node {
            @display("p=130,36;is=s");
        }
        n3: Node {
            @display("p=262,142;is=s");
        }
        n4: Node {
            @display("p=262,36;is=s");
        }
        T: Node {
            @display("p=364,87;is=s");
        }
    connections:
        S.g++ <--> Link {  cost = 13;@display("t=13"); } <--> n1.g++;
        S.g++ <--> Link {  cost = 16;@display("t=16"); } <--> n2.g++;
        n1.g++ <--> Link {  cost = 1;@display("t=1"); } <--> n2.g++;
        n1.g++ <--> Link {  cost = 14;@display("t=14"); } <--> n3.g++;
        n1.g++ <--> Link {  cost = 9;@display("t=9"); } <--> n4.g++;
        n2.g++ <--> Link {  cost = 12;@display("t=12"); } <--> n4.g++;
        n4.g++ <--> Link {  cost = 20;@display("t=20"); } <--> T.g++;
        n3.g++ <--> Link {  cost = 4;@display("t=4"); } <--> T.g++;
        n3.g++ <--> Link {  cost = 7;@display("t=7"); } <--> n4.g++;
}

但是当我尝试运行模拟器并且它崩溃了exe文件时,我收到了这个错误。

  

网络设置期间模块(cModule)net.S(id = 2)出错:Gate   `net.S.g $ i [0]'没有连接到子模块(或内部连接到   同一模块的另一个门。)

1 个答案:

答案 0 :(得分:3)

问题出在module Node,您声明为复合模块。因此,OMNeT ++希望它具有连接到声明的门g的子模块。但是,您的复合模块没有子模块。

您很可能希望将模块声明为simple Node(即没有子模块的模块)。