Как изменить конфигурацию GTSon (то есть для отдельного узла есть другой запрос GTS) в командной строке в Castalia 3.3 Simulator? - PullRequest
0 голосов
/ 06 июня 2019

Я выполняю эксперимент BANtest, представленный в примере симуляции в симуляторе Castalia 3.3.Я исследую GTS в периоде без конкуренции (CFP) в режиме включения маяка MAC IEEE 802.15.4.Я хочу изменить конфигурацию, т.е. GTS, таким образом, чтобы каждый отдельный узел запрашивал разные слоты GTS в командной строке.Что мне нужно изменить в файле конфигурации?

Я прочитал и понял процедуру изменения конфигурации в командной строке из "раздела 3.5.3" в руководстве пользователя castalia.В настоящее время я могу изменить «равный» запрос GTS, сделанный узлами в конфигурации GTSon в командной строке, но мне интересно получить различные запросы на слоты GTS от отдельного узла.


Case-1: код для одинаковых запросов GTS из всех узлов

# Define as set of equal GTS request for all nodes in omnetpp.ini
  [Config GTSon]
    SN.node[*].Communication.MAC.requestGTS = ${GTS=1,2}


# Execute BANtest example- take request GTS from config file
  $ Castalia -c ZigBeeMAC,[GTSon] 

# Changing configuration (i.e. GTSon) form command line-run successfully
  $ Castalia -c GTSon=\$\{GTS=0,3\} 

Case-2: код для разных узлов GTS-запросов из форм

# Define differnt GTS requests for nodes in omnetpp.ini
  [Config GTSon]
    SN.node[1].Communication.MAC.requestGTS = ${GTS1=0}
    SN.node[2].Communication.MAC.requestGTS = ${GTS2=4}
    SN.node[3].Communication.MAC.requestGTS = ${GTS3=3}
    SN.node[4].Communication.MAC.requestGTS = ${GTS4=0}
    SN.node[5].Communication.MAC.requestGTS = ${GTS5=0}


# Execute BANtest example- run successfully
  $ Castalia -c ZigBeeMAC,[GTSon] 

# Changing configuration (i.e.GTSon) form command line- showing error
  $ Castalia -c GTSon=\$\{GTS1=0,GTS2=1,GTS3=5,GTS4=0,GTS5=0\}

Случай 1 успешно выполняется, но в случае 2 есть ошибка, которая указана ниже:

"ОШИБКА: конфигурация" GTSon "имеет более одного параметра и не может использоваться с синтаксисом =«

1 Ответ

0 голосов
/ 14 июня 2019

Ошибка, которую вы получаете, является просто ограничением сценария Castalia. В руководстве пользователя Castalia четко указано об этом ограничении в разделе 3.5.3 . Вы также можете выполнить поиск по этой строке: has more than one parameter and cannot be used with '=' syntax" в сценарии Castalia, чтобы узнать больше подробностей или подумать, как можно расширить ее для поддержки нескольких параметров cmdline для конфигурации.

Но расширение функциональности на самом деле не нужно. Один простой обходной путь - определить индивидуальные конфигурации для каждого узла. Например

 [Config GTSon-n1]
   SN.node[1].Communication.MAC.requestGTS = ${GTS1=0}

 [Config GTSon-n2]
   SN.node[2].Communication.MAC.requestGTS = ${GTS2=4}
...

Тогда вы можете использовать Castalia для запуска

  $ Castalia -c ZigBeeMAC,GTSon-n1,GTSon-n2

Или измените параметр в командной строке

  $ Castalia -c ZigBeeMAC,GTSon-n1=3,GTSon-n2=5

В целом, я хотел бы предположить, что изменение параметров симуляции в командной строке не очень хорошая идея (по крайней мере, для ваших обычных симуляций). Эту функцию следует использовать только для запуска одноранговых исследовательских симуляций, где вы быстро захотите проверить эффект изменения, не редактируя INI-файл. Дополнительный бонус заключается в том, что командная строка сохраняется вместе с выходным файлом, поэтому у вас есть некоторое представление о том, как был создан этот выходной файл. Вот почему эта функция была добавлена ​​в Castalia. Тем не менее, для ваших регулярных исследований симуляции, вы должны иметь значения параметров (или диапазон значений) в самом INI-файле. Таким образом, имеется надлежащая запись о том, каким должно быть изучение симуляции. INI-файлы OMNeT ++ достаточно универсальны, и вы можете добиться многого с помощью их синтаксиса. Убедитесь, что вы знаете обо всем, что может предложить OMNeT, прочитав главу 9 руководства OMNeT ++ 4.x .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...