Omnet++ 如何在omnetpp.ini中声明一组参数

Omnet++ 如何在omnetpp.ini中声明一组参数,omnet++,inet,Omnet++,Inet,我有两种类型的主机:wirelessHostA[0..N],wirelessHostB[0..N]。我想声明每个主机wirelessHostA[0..N]向各自的wirelessHostB[0..N]发送消息。示例:A[0]发送到B[0],A[10]发送到B[10]。就表达而言,我得到了如下结果: *.wirelessHostA[0..${N}].app[ * ].destAddresses = "wirelessHostB[0..${N}]" *.wirelessHostA[*].app[*

我有两种类型的主机:wirelessHostA[0..N],wirelessHostB[0..N]。我想声明每个主机wirelessHostA[0..N]向各自的wirelessHostB[0..N]发送消息。示例:A[0]发送到B[0],A[10]发送到B[10]。就表达而言,我得到了如下结果:

*.wirelessHostA[0..${N}].app[ * ].destAddresses = "wirelessHostB[0..${N}]"
*.wirelessHostA[*].app[*].destAddresses = "wirelessHostB[" + string(parentIndex()) + "]"

虽然这个不正确。我有点不确定如何声明一个可以在运行期间迭代的变量,而不是每次运行的值。

您不应该将INI文件中的行视为可以创建循环等过程结构的赋值。而应该将它们视为模式匹配规则。当一个模块需要一个参数时,它会逐行扫描INI文件,并尝试将第一部分(即=之前的部分)匹配到当前模块路径。如果匹配,则将第二部分指定给参数。如果不是,in将继续INI文件中的下一行

首先,编写一个模式规则,然后编写一个可以在该上下文中计算的值。指定值时,可以引用模块上下文中可用的其他参数,也可以引用其他额外上下文信息,例如匹配子模块的索引(如果它是向量的一部分)。还有其他函数可以访问etc的父级索引

在本例中,我们有一个主机的子模块向量,其中每个主机都包含一个应用程序的子模块向量。index操作符将返回当前上下文模块的索引,该索引是app向量中的位置,但实际上我们需要app向量的父级(即宿主向量)的索引。这也有一个NED函数,称为parentIndex。因此,解决方案如下所示:

*.wirelessHostA[0..${N}].app[ * ].destAddresses = "wirelessHostB[0..${N}]"
*.wirelessHostA[*].app[*].destAddresses = "wirelessHostB[" + string(parentIndex()) + "]"

有关更多信息,请参阅。

非常感谢,我甚至不知道ned函数。只是一个小的修正,这必须是一个stringparentIndex。我的坏。。。你说得对,NED中没有自动类型转换。答案是固定的。