【问题标题】:How can I find the implement .cc file in Omnet++ INET's examples如何在 Omnet++ INET 的示例中找到实现 .cc 文件
【发布时间】:2016-04-11 18:37:46
【问题描述】:

我现在是在 Omnet 学习 INET 的新人。我试图找出 INET 的示例(如教程无线网络)是如何工作的,但该目录中只有 ned 和 ini 文件,没有 cc 文件。所以我很困惑这个网络是如何工作的。谁能告诉我如何找到它?

【问题讨论】:

    标签: c++ omnet++ inet


    【解决方案1】:

    INET 示例中没有C++ 文件,因为INET 使用的每个模块、协议、通道、数据包等的整体行为已经在C++ 目录中的C++ 文件中定义。已编译且可立即使用的代码存在于文件 src\libINET.dll(或 Linux 的 src/libINET.so)中。
    要了解如何对协议进行建模,请查看模块内部并寻找简单的模块。 (在OMNeT++ 中,行为仅针对简单模块定义。)
    例如:

    1. examples\wireless\lan80211 中有Lan80211.ned。以源(文本)格式打开它。该网络使用(在其他事物之间)WirelessHost
    2. 转到WirelessHost 的声明(提示:选择该词并按 F3 或按住 Ctrl 键单击该词)。可以看到WirelessHost 继承自StandardHostNodeBase。此外:numRadios=1mgmtType = "Ieee80211MgmtSTASimplified"
    3. NodeBase.ned可以看到默认使用Ieee80211Nic wlan模块。模块Ieee80211Nicsrc\inet\linklayer\ieee80211\Ieee80211Nic.ned 中定义。
    4. 查看Ieee80211Nic 内部可以看到它使用Ieee80211Mac(在其他事物之间)。这是\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.ned 中定义的一个简单模块。它的行为在\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.cc 中定义。

    这样可以发现一个简单的模块及其每个复合模块的C++ 代码。但是,要了解复合模块的工作原理,还应考虑简单模块之间的连接。

    【讨论】:

    • 谢谢,所以像80211 mac层这样的简单模块已经在INET模块中定义了。如果我想在mac层和网络层之间添加一个自定义层来处理网络编码。如何结合自定义模块和 INET 模块。
    • 最简单的方法是创建一个新的OMNeT++ 项目并将INET 设置为引用的项目。此外,在您的新项目中,您应该为您的主机定义自己的 NED 文件。主机将从StandardHost 继承。我建议为这个问题添加一个新问题,我将为您提供解决方案的示例代码。
    • 谢谢 Jerzy,我已经添加了一个新问题。
    • 嗨,Jerzy,您能否提供一个简单的代码来解决我的新问题,该问题的名称是如何将我的自定义模块与 Omnet++INET 的简单模块结合起来。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多