Как добавить специализированные аргументы командной строки в OMNET ++? - PullRequest
0 голосов
/ 07 февраля 2020

Мы хотим добавить несколько аргументов командной строки для запуска симуляции. Но я не нашел способ сделать это. В документации предоставлены заранее определенные аргументы:

../simulation -u Cmdenv -c config_type -r number 

Эти флаги (-u - c -r) предопределены (и есть некоторые другие). Мы хотим добавить несколько аргументов для запуска различных симуляций, например:

../simulation -u Cmdenv -c config_type -r number -x1 x1_vale -x2_value 

Затем мы хотим, чтобы наши файлы. cc могли взаимодействовать с этими настроенными аргументами командной строки для выполнения определенных задач.

Как правило, в C ++ может быть:

int main(int argc, char** argv) 

Мне интересно, где обрабатываются аргументы командной строки или как получить к ним доступ в OMNET ++. Я имею в виду, что должен быть способ сделать это, если OMNET ++ обеспечивает симуляцию командной строки.

1 Ответ

1 голос
/ 07 февраля 2020

Посмотрите, как параметры конфигурации определены в OMNeT ++, например, в файле cmdenv.cc: https://github.com/omnetpp/omnetpp/blob/master/src/cmdenv/cmdenv.cc#L63

Короче говоря,

Register_GlobalConfigOption(CFGID_OPTION_NAME, "option-name", CFG_STRING, nullptr, "Help description")

затем вы можете получить к нему доступ в cConfiguration объекте, возвращаемом getEnvir()->getConfig()

См .: https://doc.omnetpp.org/omnetpp/manual/#sec: plugin-exts: configoption: значения чтения

Это позволит вам указать значение конфигурации либо из INI-файла, либо из командной строки с помощью --option-name=value (обратите внимание, что вы должны использовать префикс с двойным дефисом).

С вашего моделя вы можете получить к нему доступ:

getEnvir()->getConfig()->getAsString(CFGID_OPTION_NAME);
...