Я нашел информацию о том, что можно каким-то образом зациклить конфигурацию, указанную как: some_variable = $ {несколько значений}, но в файлах .ini нет условных предложений и нет способа передать в эти файлы какие-либо данные из функций C ++ (насколько мне известно).
Фактически, вы можете использовать встроенное выражение ограничение в 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
.
Я уверен, что внимательно прочтите этот раздел руководства. , поможет вам найти решение.
person
user4786271
schedule
14.04.2015