【发布时间】:2016-04-11 18:37:46
【问题描述】:
我现在是在 Omnet 学习 INET 的新人。我试图找出 INET 的示例(如教程无线网络)是如何工作的,但该目录中只有 ned 和 ini 文件,没有 cc 文件。所以我很困惑这个网络是如何工作的。谁能告诉我如何找到它?
【问题讨论】:
我现在是在 Omnet 学习 INET 的新人。我试图找出 INET 的示例(如教程无线网络)是如何工作的,但该目录中只有 ned 和 ini 文件,没有 cc 文件。所以我很困惑这个网络是如何工作的。谁能告诉我如何找到它?
【问题讨论】:
INET 示例中没有C++ 文件,因为INET 使用的每个模块、协议、通道、数据包等的整体行为已经在C++ 目录中的C++ 文件中定义。已编译且可立即使用的代码存在于文件 src\libINET.dll(或 Linux 的 src/libINET.so)中。
要了解如何对协议进行建模,请查看模块内部并寻找简单的模块。 (在OMNeT++ 中,行为仅针对简单模块定义。)
例如:
examples\wireless\lan80211 中有Lan80211.ned。以源(文本)格式打开它。该网络使用(在其他事物之间)WirelessHost。WirelessHost 的声明(提示:选择该词并按 F3 或按住 Ctrl 键单击该词)。可以看到WirelessHost 继承自StandardHost 和NodeBase。此外:numRadios=1 和 mgmtType = "Ieee80211MgmtSTASimplified"。NodeBase.ned可以看到默认使用Ieee80211Nic wlan模块。模块Ieee80211Nic 在src\inet\linklayer\ieee80211\Ieee80211Nic.ned 中定义。Ieee80211Nic 内部可以看到它使用Ieee80211Mac(在其他事物之间)。这是\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.ned 中定义的一个简单模块。它的行为在\src\inet\linklayer\ieee80211\mac\Ieee80211Mac.cc 中定义。这样可以发现一个简单的模块及其每个复合模块的C++ 代码。但是,要了解复合模块的工作原理,还应考虑简单模块之间的连接。
【讨论】:
OMNeT++ 项目并将INET 设置为引用的项目。此外,在您的新项目中,您应该为您的主机定义自己的 NED 文件。主机将从StandardHost 继承。我建议为这个问题添加一个新问题,我将为您提供解决方案的示例代码。