是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.ned
,omnetpp.ini
和mwe.ned
。
如果我一个接一个地设置Node
的Net
子模块,并向每个子模块添加固定属性@display("p=...")
,那么它将起作用。更加参数化地设置它们,即node[size]: Node;
无法执行上述错误的模拟。
非常感谢您的帮助。
提前感谢!
package mwe;
[General]
network = Net
*.radioMedium.typename = "Ieee802154NarrowbandScalarRadioMedium"
*.host*.wlan[0].radio.typename = "Ieee802154NarrowbandScalarRadio"
**.wlan[0].typename = "Ieee802154NarrowbandInterface"
*.host*.ipv4.arp.typename = "GlobalArp"
*.size = 2
package mwe;
import inet.node.inet.StandardHost;
import inet.physicallayer.unitdisk.UnitDiskRadioMedium;
import inet.physicallayer.contract.packetlevel.IRadioMedium;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
module Node extends StandardHost
{
parameters:
numWlanInterfaces = default(1);
}
network Net
{
parameters:
int size = default(1);
submodules:
configurator: Ipv4NetworkConfigurator;
radioMedium: <default("UnitDiskRadioMedium")> like IRadioMedium;
node[size]: Node;
}
我有类似的问题,错误消息完全相同。
我通过设置以下参数解决了它:
*.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
,并将这些值用作随机的最小值和最大值。