如何为复合模块调用参数? [英] How do I call a parameter for a compound module?
问题描述
我正在使用omnet ++,想知道如何在复合模块的c ++文件中获取参数.
I am using omnet++, and was wondering how do I get a parameter in a c++ file of a compound module.
module server {
parameters:
int server;
submodule:
//Queue
// processor
}
在c ++中调用par
函数对我有用.
calling the par
function in c++ is working for me.
推荐答案
复合模块没有C ++代码.只有简单的模块才有C ++代码.要从简单模块的代码中获取复合模块的参数值,可以使用:getParentModule()->par("foo");
一个例子.
NED文件:
Compound module doesn't have C++ code. Only simple modules have a C++ code. To get the value of a compound module's parameter from code of simple module one can use: getParentModule()->par("foo");
An example.
NED file:
module Server {
parameters:
int cpuNumber;
submodules:
mod1 : Queue;
}
simple Queue {
// ...
}
要在Queue类的C ++代码中获取cpuNumber
的值,应编写:
To obtain a value of cpuNumber
in C++ code of Queue class one should write:
int cpu = getParentModule()->par("cpuNumber"); // OK
尝试使用以下代码:
int cpu = par("cpuNumber"); // Wrong!
导致错误:unknown parameter 'cpuNumber'
,因为Queue
模块没有该参数.
leads to error: unknown parameter 'cpuNumber'
, because Queue
module doesn't have that parameter.
这篇关于如何为复合模块调用参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!