我正在尝试创建一个包含六个节点的网络,如下所示
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]'没有连接到子模块(或内部连接到 同一模块的另一个门。)
答案 0 :(得分:3)
问题出在module Node
,您声明为复合模块。因此,OMNeT ++希望它具有连接到声明的门g
的子模块。但是,您的复合模块没有子模块。
您很可能希望将模块声明为simple Node
(即没有子模块的模块)。