使用一个参数进行多项赋值
Using a parameter for multiple assignments
我正在模拟多个会话长度的网络拓扑。我希望实验的重复次数随着会话长度的减少而增加。所以我尝试将 $repeat 值与 *.sendBytes 绑定但失败了。
这是我的尝试 1
[some config]
repeat = ${1, 10, 100} # fails
...
**.app[0].sendBytes = repeat * 1KiB
这是我的第二次尝试
[some config]
**.app[0].sendBytes = ${load = 1KiB, 10KiB, 100KiB}
...
repeat = 100KiB / ${load} # fails
我不想浪费模拟时间来重复长时间的会话以确保测量的可靠性。
您要查找的内容在 omnet 手册中称为“Parallel Iteration”:
迭代的主体可能以感叹号结尾,后跟另一个迭代变量的名称。此语法表示并行迭代。并行迭代不定义自己的循环,而是序列以“!”后的变量同步推进。换句话说,“!” syntax 从迭代中选择第 k 个值,其中 k 是迭代变量在“!”之后的位置(迭代次数)。
一个例子:
**.plan = ${plan= "A", "B", "C", "D"}
**.numHosts = ${hosts= 10, 20, 50, 100 ! plan}
**.load = ${load= 0.2, 0.3, 0.3, 0.4 ! plan}
你可以这样写:
repeat = ${5, 50, 200 ! load}
我正在模拟多个会话长度的网络拓扑。我希望实验的重复次数随着会话长度的减少而增加。所以我尝试将 $repeat 值与 *.sendBytes 绑定但失败了。
这是我的尝试 1
[some config]
repeat = ${1, 10, 100} # fails
...
**.app[0].sendBytes = repeat * 1KiB
这是我的第二次尝试
[some config]
**.app[0].sendBytes = ${load = 1KiB, 10KiB, 100KiB}
...
repeat = 100KiB / ${load} # fails
我不想浪费模拟时间来重复长时间的会话以确保测量的可靠性。
您要查找的内容在 omnet 手册中称为“Parallel Iteration”:
迭代的主体可能以感叹号结尾,后跟另一个迭代变量的名称。此语法表示并行迭代。并行迭代不定义自己的循环,而是序列以“!”后的变量同步推进。换句话说,“!” syntax 从迭代中选择第 k 个值,其中 k 是迭代变量在“!”之后的位置(迭代次数)。
一个例子:
**.plan = ${plan= "A", "B", "C", "D"}
**.numHosts = ${hosts= 10, 20, 50, 100 ! plan}
**.load = ${load= 0.2, 0.3, 0.3, 0.4 ! plan}
你可以这样写:
repeat = ${5, 50, 200 ! load}