Omnet++:是否可以在 omnetpp.ini 中的参数设置中调用参数作为值?
Omnet++ : Is it possible to recall a parameter as value inside a parameter setting inside the omnetpp.ini?
我是 omnet++ 的新手,我正在尝试测试一些模拟,但我需要根据另一个参数设置一个参数。
[General]
network = Floor
[Config Test]
Floor.sizeX = ${200, 1000}
Floor.sizeY = ${200, 1000}
Floor.slotTime = 100ms
Floor.radius = ${20, 120}
Floor.PosX = intuniform(0,Floor.sizeX)
Floor.PosY = intuniform(0,Floor.sizeY)
Floor.P = ${0.1, 0.9}
Floor.numberOfNodes = ${20, 500}
如您所见,在 .ini 文件中,我需要将 "intuniform" 的值设置为上述参数的值。但是模拟器向我显示了这条错误消息:
Cannot evaluate parameter 'posX': Cannot evaluate parameter 'PosX': (omnetpp::cModule)Floor: Expression cannot be interpreted on network
level -- in module (Node) Floor.node[0] (id=2), during network setup
而且我想把那种分布留在那里,这样我就可以很容易地改变它。这可能吗?谢谢!
是的,可以reference to another parameter value。必须引入一个变量,例如 X
并引用它写作 ${X}
:
Floor.sizeX = ${X=200, 1000}
Floor.sizeY = ${Y=200, 1000}
...
Floor.PosX = intuniform(0, ${X})
Floor.PosY = intuniform(0, ${Y})
我是 omnet++ 的新手,我正在尝试测试一些模拟,但我需要根据另一个参数设置一个参数。
[General]
network = Floor
[Config Test]
Floor.sizeX = ${200, 1000}
Floor.sizeY = ${200, 1000}
Floor.slotTime = 100ms
Floor.radius = ${20, 120}
Floor.PosX = intuniform(0,Floor.sizeX)
Floor.PosY = intuniform(0,Floor.sizeY)
Floor.P = ${0.1, 0.9}
Floor.numberOfNodes = ${20, 500}
如您所见,在 .ini 文件中,我需要将 "intuniform" 的值设置为上述参数的值。但是模拟器向我显示了这条错误消息:
Cannot evaluate parameter 'posX': Cannot evaluate parameter 'PosX': (omnetpp::cModule)Floor: Expression cannot be interpreted on network level -- in module (Node) Floor.node[0] (id=2), during network setup
而且我想把那种分布留在那里,这样我就可以很容易地改变它。这可能吗?谢谢!
是的,可以reference to another parameter value。必须引入一个变量,例如 X
并引用它写作 ${X}
:
Floor.sizeX = ${X=200, 1000}
Floor.sizeY = ${Y=200, 1000}
...
Floor.PosX = intuniform(0, ${X})
Floor.PosY = intuniform(0, ${Y})