如何在 OMNET++ 中添加专门的命令行参数?

How to add specialized command-line arguments in OMNET++?

我们想为 运行 模拟添加一些命令行参数。但是我还没有找到这样做的方法。文档提供了预先确定的参数:

../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++ 提供命令行模拟,就应该有办法做到这一点。

看看配置选项是如何在 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")

然后您可以在 getEnvir()->getConfig()

返回的 cConfiguration 对象中访问它

参见:https://doc.omnetpp.org/omnetpp/manual/#sec:plugin-exts:configoption:reading-values

这将允许您从 INI 文件或使用 --option-name=value 的命令行指定配置值(请注意,您应该在其前面加上双连字符)。

从您的模型中,您可以通过以下方式访问它:

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