将50%的节点分配给某个参数,其余节点分配给另一个参数

时间:2018-01-25 00:45:30

标签: omnet++

我有一个代码,我需要将一半节点分配到一个到达间隔时间,其余节点分配到另一个到达间隔     LoRa.numHosts = 300

LoRa.host[0..149].iaTime = exponential(600s) 
LoRa.host[150..299].iaTime = exponential(60s)

有没有办法一般地做到这一点,所以我只需要更改numHosts,代码完成剩下的工作(这会给出错误!)

LoRa.numHosts = ${N=300..3000 step 100} 

LoRa.host[0..(numHosts/2)-1].iaTime = exponential(600s) 
LoRa.host[(numHosts/2)..numHosts].iaTime = exponential(60s)

有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

您应该在omnetpp.ini中写下以下几行:

LoRa.numHosts = ${N=300..3000 step 100} 
LoRa.host[*].iaTime = index < (${N})/2 ? exponential(600s) : exponential(60s)

第二行中的index返回主机向量中该主机的索引(即位置)。表达式cond ? val1 : val2与C ++中的含义相同。