如何使用 source.cc 文件修改 Omnet++ 和 inet 中模块的行为

问题描述 投票:0回答:1

我对 Omnet++ 和网络模拟/工程总体来说非常陌生,因此我的知识中存在一些相当重要的漏洞。目前我正在开展一个涉及定向天线的项目,我的任务是创建一个模拟。这个想法是让定向天线搜索其他定向天线以建立连接。我已将问题分解为一系列较小的步骤,以帮助我学习如何使用该软件,但我遇到了一些障碍,特别是在模拟如何使用 .ini 文件方面。

根据我的理解,网络拓扑是在ned文件中创建的,网络拓扑的行为和属性是在ini文件中设置的。我的问题是:天线指向的方向基于移动性,我不知道如何实现搜索其他天线的逻辑。我已经完成了 Omnet++ 和 Inet 教程,并且知道我可以使用 source.cc 文件更改模拟的行为,但我不清楚如何使用现有模型(例如 adhocHost 模型)来做到这一点用于在inet的定向天线展示中实现定向天线。

就我当前项目的具体情况而言,我正在尝试让天线按顺时针顺序观察M个扇区的方向。如果它检测到另一个天线,那么它会存储该天线的名称及其指向的方向。最终这将演变成一个更高级的项目,涉及编写 MAC 级协议,但我正在尝试将模拟一点一点地组合在一起。

我发现我可以使用主要从 inet 提供的定向天线展示中获取的代码来更改 AdhocHost 上天线的方向。我通过将天线的移动模块设置为零速度线性移动并更改初始航向角来做到这一点。这里的问题归结为行为受到 ini 文件的限制。我不知道如何编写逻辑以在设定时间后改变方向,更不用说如何发起握手了。我认识到我需要使用 source.cc 文件,并且在编写代码时我有状态机的基本流程图,我只是不知道需要编辑、更改或创建什么。

我也尝试过 CircleMobility,但我认为它不太适合我们最终的最终模型,理想情况下,最终模型会立即切换到不同的区域并在那里停留一小段时间,而不是不断地绕圈移动。

omnet++ inet
1个回答
0
投票

由于您需要一种特殊的移动性(天线方向也被认为是一种移动性),因此您必须创建自己的移动性模型(这是一个带有自己的 C++ 代码的简单模块),然后设置模拟以使用该模块用于天线移动性。

虽然您可以仅使用 INI 文件以各种棘手的方式组合现有的移动模型,但只能使用 C++ 代码添加新行为。

我建议看一下

FacoingMobility
,查看代码,创建您自己的副本(使用不同的诅咒名称),一旦它开始工作,就开始修改代码以实现您自己的特定移动行为。

© www.soinside.com 2019 - 2024. All rights reserved.