omnet 参数

来源:互联网 发布:淘宝开店怎么添加宝贝 编辑:程序博客网 时间:2024/05/15 01:16

参数属于模块的变量,可用来构建拓扑(节点数量等),为实现简单模块和信道的C++代码提供输入。

1.值

参数可以从ned代码中,从配置文件中,甚至是从何用户的交互过程中。

在ini文件中赋值不能覆盖NED中的值。如果NED中没有赋值,可以用以下方式在ini文件里赋值。

**.sendIaTime=100ms;

**.sendIaTime=2s+exponential(100ms);

omnet支持通配符,上面的代码适用于所有名字为sendIaTime的参数。

如果ini文件里没有赋值,就会应用为默认值,如果没有默认值,会对用户进行询问;否则会出现错误,也可以明确地应用默认值。

**.sendIaTime=default;

最后,ini文件的特点是跟模型和实验完全分离。ned文件被认为是模型的一部分。

2.表达式

参数值可以由公式给出。公式可以使用不同的数字、字符串、随机函数和其他的函数(fabs(),toUpper(),uniform()和erlang_k()等)。

3.volatile

volatile变量的修改是实时的,所以相应参数值的表达式在每次被读时都应该重新被评估。

4.单位

变量声明时可以添加@unit特性,并携带度量的相关单位。

volatile double sendIaTime @unit(s)=default(exponential(350ms));

@unit(s)为参数声明了尺寸单位。赋给参数的值必须是相同或相容的单位,比如@unit(s)可以接受milliseconds、nanoseconds、minutes、hours等。

Omnet++运行时间会对参数进行一套完整的单位检查,以保证模型的单位安全。常量通常应该包括度量单位


注意:在子类或子模块的定义中,参数不能加入或者不考虑参数的@unit特性。




原创粉丝点击