gpt4 book ai didi

c++ - 如何在 OMNeT++ 仿真期间更改网络配置?

转载 作者:行者123 更新时间:2023-11-30 01:49:05 38 4
gpt4 key购买 nike

我想在 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 #

上面的代码为 t0t3 创建了所有可能的时间值组合,它们可以取 0.1 之间的值>0.9

t0t3 分别是起点和终点。 t1t2 取基于它们的值。

t1 将取 t0t3 之间的值,每次递增 0.1(参见上面的语法). t2 也是如此。

但是,我希望 t0 始终小于 t1t1 小于 t2,并且 t2 小于 t3。我在 constraint 部分指定了这些条件。

我确定,通读一遍 this手册的一部分,将帮助您找到解决方案。

关于c++ - 如何在 OMNeT++ 仿真期间更改网络配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613536/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com