如何为复合模块添加支持handlemessage功能的能力

问题描述

包含子模块的模块被称为复合模块,而不是模块层次结构中最低级别的简单模块。简单模块包含模型的算法。用户用C++实现简单模块,使用模拟类库 简单模块支持handlemessage函数,复合模块不支持handlemessage。复合模块的一个实例和大多数用法是 AdhocHost 模块。 如何为复合模块添加支持handlemessage功能的能力? 特别是在网络层为AdhocHost模块添加handlemessage能力。

是否可以使用 Inet 主机,例如来自 inet 的 WirelessHost 并应用自定义编码来处理收到的消息?我只看过使用 ini 和 ned 文件的 inet 教程。

在检查没有 inet 的基本教程时,如 tictoc,有可能在收到消息时使用 handleMessage 函数。在 Inet 中使用 WirelessHost 或 AdhocHost 模块时是否有类似的可能性?

Fugure 1-The AdhocHost Compound Module

Figure 2-The AdhocHost Compound Module in https://doc.omnetpp.org › inet.node.inet.AdhocHost.html

提前致谢

解决方法

根据定义,如果您将消息处理委托给较小的内部模块,则您将某些东西称为“复合模块”。如果您有一个 handleMessage() 方法并希望在 C++ 代码中处理消息,则根据定义再次将其称为简单模块。

我猜您要问的是:我可以向用 C++ 编码的 INET 模块添加新行为吗?答案是肯定的。你可以在简单的模块中实现你自己的行为,然后你可以将这些简单的模块插入节点中的不同位置。最显着的例子是你实现一个应用程序,然后你可以在主机内安装该应用程序,就像已经在 INET 中实现的应用程序(如 PingApp 或 UDPBasicApp 等)