如何为复合模块调用参数? [英] How do I call a parameter for a compound module?

查看:86
本文介绍了如何为复合模块调用参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆