- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 OMNeT++ 中修改元素的 .ini 文件的一些参数,比如在模拟运行期间节点的传输速率,例如当节点收到一些控制消息时。
我发现信息说可以以某种方式循环配置声明为:some_variable = ${several values},但是 中没有条件子句.ini 文件,无法将来自 C++ 函数的任何数据传递给这些文件(就我而言)。
我用的是INET,但可能其他型号的用户已经被这个问题困扰了。
最佳答案
I found information saying that it's possible to somehow loop the configuration stated as: some_variable = ${several values}, but there are no conditional clauses in .ini files and no way to pass to those files any data from C++ functions (as far as I'm concerned).
事实上你可以使用内置的constraint INI 文件中的表达式。这将允许您为给定的配置创建运行,同时遵守指定的约束(条件)。
但是,此约束仅适用于 .ini 文件中指定的参数,即,如果您尝试更改的变量是作为代码的一部分动态计算的,这将无济于事
下面,我给你一个来自 .ini 文件的相当复杂的“代码片段”,它使用了你提到的许多内置函数(变量迭代、条件等)
# Parameter assignment using iteration loops and constrains #
# first define the static values on which the others depend #
scenario.node[*].application.ADVlowerBound = ${t0= 0.1}s
scenario.node[*].application.aggToServerUpperBound = ${t3= 0.9}s
#
## assign values to "dependent" parameters using variable names and loop iterations #
scenario.node[*].application.ADVupperBound = ${t1= ${t0}..${t3} step 0.1}s # ADVupperBound == t1; t1 will take values starting from t0 to t3 (0.1 - 0.9) iterating 0.1
scenario.node[*].application.CMtoCHupperBound = ${t2= ${t0}..${t3} step 0.1}s
#
## connect "dependent" parameters to their "copies" -- this part of the snippet is only variable assignment.
scenario.node[*].application.CMtoCHlowerBound = ${t11 = ${t1}}s
scenario.node[*].application.joinToServerLowerBound = ${t12 = ${t1}}s
#
scenario.node[*].application.aggToServerLowerBound = ${t21 = ${t2}}s
scenario.node[*].application.joinToServerUpperBound = ${t22 = ${t2}}s
#
constraint = ($t0) < ($t1) && ($t1) < ($t2) && ($t2) < ($t3)
# END END END #
上面的代码为 t0
到 t3
创建了所有可能的时间值组合,它们可以取 0.1
和 之间的值>0.9
。
t0
和t3
分别是起点和终点。 t1
和 t2
取基于它们的值。
t1
将取 t0
和 t3
之间的值,每次递增 0.1
(参见上面的语法). t2
也是如此。
但是,我希望 t0
始终小于 t1
,t1
小于 t2
,并且 t2
小于 t3
。我在 constraint
部分指定了这些条件。
我确定,通读一遍 this手册的一部分,将帮助您找到解决方案。
关于c++ - 如何在 OMNeT++ 仿真期间更改网络配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613536/
我是一名优秀的程序员,十分优秀!