【问题标题】:Accessing network.ned parameters in .cc file Omnet++访问 .cc 文件 Omnet++ 中的 network.ned 参数
【发布时间】:2015-11-27 23:03:48
【问题描述】:

我是 omnet 的新手。我需要访问网络参数才能在sensornode.cc 文件中使用它。因为我统一分配节点wrt用户输入。我的意思是我想用宽度和高度等网络参数检查分布范围。

我尝试了cPar,但它失败了,因为sensornode.ned 中没有定义参数。那么,如何在sonsornode.cc 中访问这个参数。

rng =par("range");
widthInCC =par("width");
if(rng>widthInCC+1)
rng=widthInCC+1;
snX=uniform(0,rng);
snY=uniform(0,rng);

simple SensorNode { parameters: double range @unit(m);

gates:
    inout snsGate[] @loose;

}

【问题讨论】:

  • StackOverflow 就是为(好的)问题收集好的答案。您的问题实际上是在问两个不同的问题,这使得很难确定一个好的答案。你介意一次只问一个问题吗?这样做时,请用措辞表达您的问题,以便它(连同答案)对尽可能多的读者有所帮助。谢谢!
  • 您发布的这段代码来自您的 sensornode.cc 文件?你也可以发布你的 sensornode.ned 文件吗?
  • 我添加了 sensornode.ned 文件,但我不想访问它的参数。因为我已经可以访问它了。我想访问sensornode.cc文件中的network.ned参数。Network.ned是basenetwork。所以,所有节点都部署在这一层。希望我解释清楚。

标签: omnet++


【解决方案1】:

首先获取指向网络模块的指针,然后您也可以获取该参数。

int width = getParentModule()->par("width");

【讨论】:

  • 还是不行。 sn.cc:19:29: error: 'getSystemModule' was not declared in this scope @鲁迪
  • 可能最好只使用 getParent()。这样您就可以访问父模块的参数。我要指出,尽管访问其他模块的参数是糟糕的软件设计和反模式,因为它会阻止以后重用组件。
  • 我解决了这个问题。我使用 getParentModule() 而不是 getSystemModule()。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2021-12-05
相关资源
最近更新 更多