gpt4 book ai didi

omnet++ - 全网/互联网 : how to access class/submodules to get variables values

转载 作者:行者123 更新时间:2023-12-02 06:55:54 25 4
gpt4 key购买 nike

在我的模拟中,有一个移动节点由来自 inet 框架的以下组件组成:

现在我正在开发 UdpApp,它是 UDPVideoStreamCli.cc,它也是 inet 框架作为示例 udp 应用程序之一提供的。

现在你可以从图像中看到我必须访问 lisp 模块(它是 LispRouting.cc 的一个实例)因为我必须读取一些值或调用它的一些公共(public)方法类...我该怎么做?我只知道我必须从头开始

getParentModule()->getSubmodule();

但我不知道如何继续......你能帮忙吗?

最佳答案

(LispRouting *)getParentModule()->getSubmodule("lisp")

会成功的。请务必检查返回的指针是否不为空。

通常这是糟糕的设计,因为它硬编码了 LispRouting 模块的名称和相对位置。命名/架构的任何更改都将导致崩溃。

一个合适的设计是创建一个参数来指定 lisp 子模块的名称/路径(具有默认值),然后使用

#include "inet/common/ModuleAccess.h"
...
LispRouting *lr = getModuleFromPar<LispRouting>(par("lispModule"), this);

然后在模块的NED文件中添加一个参数:

string lispModule = default("^.lisp");

这意味着您可以找到 lisp 模块的默认位置是:向上一层,然后找到名为“lisp”的子模块。这是一个更好的模式,因为用户稍后可以在不破坏代码的情况下重新配置 lisp 模块的名称/位置。

关于omnet++ - 全网/互联网 : how to access class/submodules to get variables values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com