Network programming omnet+中的正确索引+;

Network programming omnet+中的正确索引+;,network-programming,omnet++,Network Programming,Omnet++,在omnet++中,在omnetpp.ini文件中这样的索引是否可以: *.Member[0].numTcpApps = 2 *.Member[1..numberOfMembers].numTcpApps = 1 参数numberOfMembers已在.ned文件中指定为常用整数变量。它被初始化为某个值,例如10 如果mynumberOfMembers变量仅设置为1,会发生什么情况。在这种情况下,我应该只有一个成员(成员[0])。那么.ini文件的第二个条目会发生什么变化 不能在omnetpp

在omnet++中,在omnetpp.ini文件中这样的索引是否可以:

*.Member[0].numTcpApps = 2
*.Member[1..numberOfMembers].numTcpApps = 1
参数
numberOfMembers
已在.ned文件中指定为常用整数变量。它被初始化为某个值,例如10


如果my
numberOfMembers
变量仅设置为1,会发生什么情况。在这种情况下,我应该只有一个成员(
成员[0]
)。那么.ini文件的第二个条目会发生什么变化

不能在
omnetpp.ini
中使用NED参数的值。但是,您可以在
omnetpp.ini
中实现您的目标

假设网络在
.ned
中定义为:

network ExampleNetwork
{
    parameters:
        int numberOfMembers;
    submodules:
        Member[numberOfMembers] : SomeMemberType;
    // ...
}
然后在omnetpp.ini中可以控制网络。例如,要仅为
成员[0]
设置
numTcpApps=2
,并为所有其他子模块设置
numTcpApps=1
,应编写:

*.numberOfMembers = 10
*.Member[0].numTcpApps = 2
*.Member[*].numTcpApps = 1   # i.e. Member[1], Member[2], ..., Member[9]
注意omnetpp.ini中条目的顺序,因为:

对于通配符,条目的顺序非常重要。当一个键匹配多个通配符模式时,将使用第一个匹配项

因此,条目的顺序如下:

*.numberOfMembers = 10
*.Member[*].numTcpApps = 1   # i.e. Member[0], Member[1], Member[2], ..., Member[9]
*.Member[0].numTcpApps = 2   

将为所有子模块设置
numTcpApps=1
。最后一行不被考虑,因为
成员[0]
已经由条目
成员[*]
设置了
非常感谢Jerzy D!!我不知道顺序对通配符有多重要。因此,您说不能在.ini中使用NED参数的值,但在.ini中使用
*.numberOfMembers
可以在.NED中设置此NED参数?是的。
omnetpp.ini
文件是应该(甚至必须)为NED中定义的每个参数设置值的地方,例如
*.numberOfMembers=10
。但是,不能使用其他参数的值在
omnetpp.ini
中设置参数,因此我们不能写入:
*。otherNedParameter=numberOfMembers