omnet++ - Omnetpp 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.ned
,omnetpp.ini
和mwe.ned
.
如果我一个一个地设置Node
子模块Net
并为每个子模块添加一个固定属性@display("p=...")
,那么它就可以工作。更参数化地设置它们,即node[size]: Node;
它无法执行模拟并出现上述错误。
任何帮助将不胜感激。
提前致谢!
package.ned
package mwe;
omnetpp.ini
[General]
network = Net
*.radioMedium.typename = "Ieee802154NarrowbandScalarRadioMedium"
*.host*.wlan[0].radio.typename = "Ieee802154NarrowbandScalarRadio"
**.wlan[0].typename = "Ieee802154NarrowbandInterface"
*.host*.ipv4.arp.typename = "GlobalArp"
*.size = 2
mwe.ned
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
调用,并将这些值用作随机数的最小值和最大值。
推荐阅读
- docker - 阻止服务不受限制地在某些工作人员上运行
- kubernetes - Vagrant:在所有虚拟机启动后运行 Ansible 配置,Ansible 无法连接到所有主机
- ios - 单击通知而不是通知操作时打开输入文本字段
- mysql - 获取由 Sequelize Association 生成的错误查询
- server - 显示 DNS_PROBE_FINISHED_NXDOMAIN 的错误消息
- google-cloud-storage - 从没有互联网的云存储桶下载
- mysql - AWS-EC2(Laravel、MySQL)上的连接错误太多 - SQLSTATE[HY000] [1040]
- python - 从通用列表视图返回字典
- python - 只能从 GUI 线程或 QQuickItem::updatePaintNode() 安排更新
- python - 如何在电子邮件中添加新行。(蟒蛇3)