【问题标题】:How can add capability of supporting handlemessage function to compound module如何为复合模块添加支持handlemessage功能的能力
【发布时间】:2021-05-05 01:26:54
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    根据定义,如果您将消息处理委托给较小的内部模块,您就称其为“复合模块”。如果你有一个handleMessage() 方法,并且想用C++代码处理消息,那又被定义为一个简单的模块。

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

    【讨论】:

    • Ad hoc Host Compound 模块的组成部分: 1-InterfaceTable (InterfaceTable) 2-Routing Table 3-Notification Board 4-Mobility module 5-NICs 6-Network layer 7-Transport layer protocols 8-Applications现在要向 AdhocHost 添加功能句柄消息,我认为我们需要挖掘第 2 层的项目 NIC 和第 3 层的网络层。我们应该在哪些 Inet 文件中进行更改?
    • 亲爱的@Rudi,您的解决方案让我更接近答案,尽管在实践中实施起来更加困难。如果您有相关代码,请发给我。感激不尽
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2014-08-25
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多