首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Omnetpp.ini -如何为主机参数创建循环

Omnetpp.ini -如何为主机参数创建循环
EN

Stack Overflow用户
提问于 2019-04-08 04:45:43
回答 2查看 702关注 0票数 1

我有1000台主机。我需要模拟主机按照时间表通过PingApp与其他999主机连接的情况。

例如

代码语言:javascript
复制
**.host[0]*.numPingApps = 999 #number of hosts

**.host[0]*.pingApp[*].typename = "PingApp"

**.host[0]*.pingApp[*].packetSize = 42 B

**.host[0]*.pingApp[*].sendInterval = 1 s

**.host[0]*.pingApp[*].srcAddr = "host[0]"

**.host[0]*.pingApp[0].destAddr = "host[1]" 

**.host[0]*.pingApp[0].startTime = 0 s

**.host[0]*.pingApp[0].stopTime = 5s

**.host[0]*.pingApp[1].destAddr = "host[2]" 

**.host[0]*.pingApp[1].startTime = 0.1 s

**.host[0]*.pingApp[1].stopTime = 5.1 s

**.host[0]*.pingApp[2].destAddr = "host[3]" 

**.host[0]*.pingApp[2].startTime = 0.2 s

**.host[0]*.pingApp[2].stopTime = 5.2 s

**.host[0]*.pingApp[3].destAddr = "host[4]" 

**.host[0]*.pingApp[3].startTime = 0.3 s

**.host[0]*.pingApp[3].stopTime = 5.3 s

以此类推。

如何创建自动更改参数的循环: startTime、stopTime、destAddr、number of pingApp?我需要在pingApp数量和destAddr每增加一个点的每一步增加0.1s的startTime和stopTime。

请帮帮我!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-08 21:12:35

我结合了@Rudi和@JerzyD的答案。并得到了可行的解决方案:

代码语言:javascript
复制
**.host[0]*.numPingApps = 999
**.host[0]*.pingApp[*].typename = "PingApp"
**.host[0]*.pingApp[*].sendInterval = 1 s
**.host[0]*.pingApp[*].packetSize = 42 B
**.host[0]*.pingApp[0..998].destAddr = "host[" + string(index()+1) + "]"
**.host[0]*.pingApp[0..998].startTime = replaceUnit (0.1 * (index()), "s")
**.host[0]*.pingApp[0..998].stopTime = replaceUnit (5 + 0.1 * (index()), "s")
票数 0
EN

Stack Overflow用户

发布于 2019-04-08 05:59:45

实际上,每个主机应该只有一个Ping应用程序。要实现您的目标,您可以使用以下设置:

代码语言:javascript
复制
**.host[*].numApps = 1
**.host[*].app[0].typename = "PingApp"

**.host[999].app[0].destAddr = "host[0]"
**.host[*].app[0].destAddr = "host[" + string(parentIndex()+1) + "]"

**.host[*].app[0].startTime = replaceUnit (0.1*(parentIndex()), "s")
**.host[*].app[0].stopTime = replaceUnit (5 + 0.1*(parentIndex()), "s")

paretnIndex()以主机矢量reference OMNeT++ Manual的形式返回主机的索引。对于最后一个节点(即host[999]),destAddr是手动设置的,因为parentIndex()+1将返回1000,并且没有host[1000]

第二个NED函数- replaceUnit() -用于对计算结果进行add the unit

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55563540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档