我开始(大约一周以来)在omnet ++(5.0)下使用静脉(4.4)。 我目前的任务是让车辆根据具体情况调整其传输范围。我确实阅读过很多像这些问题(以及其他主题/论坛)的问题:
我的问题:
如何 - 只改变一些节点的传输范围? 从上面的链接中,我知道术语“传输范围”在技术上与接收功率,噪声,灵敏度阈值等有关,它们定义了接收概率。
由于我不熟悉静脉(以及omnet ++),我做了很少的测试,并得出以下结论:
再说一遍,也许我所说的有一些错误的想法,我只是想知道改变这个传输范围是什么/如何改变。
最好的祝福,
你是正确的增加mac1609_4.txPower
参数让节点发送更多的功率(因此,信号可以进一步解码)。但请注意,(对于Veins 4.4)您还需要增加connectionManager.pMax
,因为此值用于确定接收模拟模块将被通知正在进行的传输的最大距离(远离发送模拟模块)。进一步离开的任何接收模拟模块将不受传输的影响(在它是解码的候选者的意义上,但在其有助于干扰的意义上)。
还要注意,(否则)完全空闲信道上的传输将比通常加载的信道上的传输更进一步。如果要获得对传输达到的距离的良好测量,让一些节点产生干扰(通过发送它们自己的广播),然后查看帧传输速率(FDR)随着发送器和接收器之间的距离的增加而下降。
最后,请注意1)噪声基底和2)接收器模拟模块尝试解码帧所需的最小功率水平需要校准到您想要模拟的WLAN卡。在Veins 4.4教程示例中选择的值对于演示静脉的概念非常有用,而values of more recent versions of Veins更接近于您在一些最近的现场测试中使用的“典型”WLAN卡所期望的值。有关这些参数的更详细讨论,请参阅文章Bastian Bloessl and Aisling O'Driscoll, "A Case for Good Defaults: Pitfalls in VANET Physical Layer Simulations," Proceedings of IFIP Wireless Days Conference 2019, Manchester, UK, April 2019
。
我只是发表意见,万一有人已经在我的情况下:
在静脉中(我使用的旧版本是4.4),“连接管理器”负责评估分组的“潜在”交换,因此,其传输功率几乎总是设置为上限。
我改变了车辆“Mac1609_4”传输功率和“图形化”后,我感到很困惑,连接管理器仍然告诉我数据包是由一些远节点接收的,事实上并非如此,它只是评估它是否是是否正确接收(通过上述链接中讨论的公式)。
因此:改变每辆车的“TxPower”在图形上确实产生了影响(消息没有安装到上层)。
总而言之,为了制定传输范围感知方案,这是必须要做的:
在“tracidemo11p.h”中添加 - >
#include "veins/modules/mac/ieee80211p/Mac1609_4.h"//added
#include "veins/base/utils/FindModule.h"//added
并作为同一“.h”文件中“tracidemo11p”类中的受保护变量 - >
Mac1609_4* mac;//added
在“tracidemo11p.cc”中添加 - >
mac = FindModule<Mac1609_4*>::findSubModule(getParentModule());
现在你可以在“traci”中操作“mac”,相应的方法在“modules / mac / ieee80211p / Mac1609_4.cc&.h”中
对于我们的工作,方法将是:
mac->setTxPower(10);//for example
这将对每个节点实例的实时仿真产生影响。
它可能用基本概念描述了它,因为我是omnet-veins的新手,这些是在不到一周的时间内完成的(并且也将为新用户提供)。
我希望它会有所帮助(并且正确)