Omnetpp INET错误:初始化后,移动位置不是有限的数字

时间:2019-11-28 10:44:37

标签: omnet++ inet

对于omnet来说是新手,但是我一直在尝试在StandardHost上设置无线网状网络。尽管编译良好,但是在模拟开始时出现了以下错误:

Mobility position is not a finite number after initialize (x=-nan,y=-nan,z=-nan) -- in module (inet::StationaryMobility) Net.node[0].mobility (id=12), during network initialization

下面是我的package.nedomnetpp.inimwe.ned

如果我一个接一个地设置Node的{​​{1}}子模块,并向每个子模块添加固定属性Net,那么它将起作用。更加参数化地设置它们,即@display("p=...")无法执行上述错误的仿真。

任何帮助将不胜感激。

谢谢!

package.ned

node[size]: Node;

omnetpp.ini

package mwe;

mwe.ned

[General]
network = Net
*.radioMedium.typename = "Ieee802154NarrowbandScalarRadioMedium"
*.host*.wlan[0].radio.typename = "Ieee802154NarrowbandScalarRadio"
**.wlan[0].typename = "Ieee802154NarrowbandInterface"
*.host*.ipv4.arp.typename = "GlobalArp"
*.size = 2

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,错误消息完全相同。

我通过设置以下参数解决了该问题:

*.host[*].mobility.constraintAreaMaxX = 650m
*.host[*].mobility.constraintAreaMinX = 0m
*.host[*].mobility.constraintAreaMaxY = 500m
*.host[*].mobility.constraintAreaMinY = 0m
*.host[*].mobility.constraintAreaMaxZ = 0m
*.host[*].mobility.constraintAreaMinZ = 0m

我发现通过MobilityBase::setInitialPosition方法读取的解决方案:使用最小配置,将调用getRandomPosition,并将这些值用作随机数的最小值和最大值。