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

assign 50 % of nodes to a certain parameter and the rest to another parameter

嗨,我有一个代码,我需要将一半节点分配给一个到达间隔时间,将其余节点分配给另一个到达间隔时间 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)

有什么帮助吗?

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

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

第二行的indexreturns这个host在hosts向量中的索引(即位置)。表达式 cond ? val1 : val2 与 C++ 中的含义相同。