在 运行 时间内更改一组特定车辆的传输信号强度
Change the transmission signal strength for a specific set of vehicles during the run-time
我开始(大约一周后)在 omnet++ (5.0) 下使用 veins (4.4)。
我目前的任务是让车辆根据特定情况调整其传输范围。我确实阅读了很多这样的问题(以及其他 topics/forums):
Vehicles Receive Beacon Messages outside RSU Range
Reduce the coverage area between vehicles
我的问题:
如何 - 真正地 - 仅更改某些节点的传输范围?
从上面的链接,我知道“传输范围”这个词,从技术上讲,与接收功率、噪声、灵敏度阈值等定义了接收概率有关。
由于我是 veins(以及 omnet++)的新手,我做了一些测试并得出以下结论:
“TraCIMobility”模块可以调整节点参数(每辆车都有一个实例),如ID、速度等
我也可以实例化“Mac1609_4”(对于每辆车)并在模拟期间更改它的一些参数,例如“txPower”运行-time 但是对实际通信范围无影响。
我无法实例化(因为它是全局的)“连接管理器”模块,它是唯一负责(并覆盖)有效通信范围的模块。这个模块可以在“.ini”文件中配置,但我想要不同的传输功率,最重要的是“可以在 运行 时间内更改”。
计算传输范围的公式在附件中,我明白了,但它必须是一种在其中一层中定义或更改这些参数的方法(即使它在phy 层,即类似附加信号强度的东西...)
再说一遍,可能我说的有些错误,我只是想知道what/how改变这个传输范围。
此致,
你增加 mac1609_4.txPower
parameter to have a node send with more power (hence, the signal being decodable further away). Note, however, that (for Veins 4.4) you will also need to increase connectionManager.pMax
是正确的,因为这个值用于确定接收模拟模块将被告知正在进行的传输的最大距离(远离传输模拟模块)。距离较远的任何接收模拟模块都不会受到传输的影响(在解码候选的意义上,但也在有助于干扰的意义上)。
另请注意,(否则)完全空闲信道上的传输比典型负载信道上的传输要远得多。如果您想很好地测量传输的距离,让一些节点产生干扰(通过传输它们自己的广播),然后查看帧传送率 (FDR) 如何随着发送方和接收方之间的距离增加而下降。
最后,请注意 1) 本底噪声和 2) 接收器的模拟模块尝试解码帧所需的最小功率电平需要针对您要模拟的 WLAN 卡进行校准。 Veins 4.4 教程示例中选择的值对于演示 Veins 的概念非常有用,而 values of more recent versions of Veins come closer to what you would expect from a "typical" WLAN card used in some of the more recent field tests. See the paper 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),"connection manager"负责评估"potential"数据包交换,因此,它的传输功率几乎总是设置为上限。
我在更改车辆 "Mac1609_4" 传输功率和 "graphically" 后感到困惑,连接管理器仍然向我显示数据包被一些远节点接收,实际上不是在这种情况下,它只是评估它是否被正确接收(通过上面链接中讨论的公式)。
因此:改变每辆车的 "TxPower" 除了图形化效果之外(消息没有安装到上层)。
总而言之,要制定一个传输范围感知方案,这是必须要做的:
- 在发送方节点(车辆)中,与处理移动特性的指针"traci"类似,必须创建指向"mac1609"的指针并指向它,如下所示:
在"tracidemo11p.h"中添加->
#include "veins/modules/mac/ieee80211p/Mac1609_4.h"//added
#include "veins/base/utils/FindModule.h"//added
并作为同一“.h”文件中 "tracidemo11p" 的 class 中的受保护变量 ->
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的新手,可能已经用基本概念描述了,这些是在不到一周的时间内完成的(并且也会为新用户提供)。
希望对您有所帮助(并且正确)
我开始(大约一周后)在 omnet++ (5.0) 下使用 veins (4.4)。
我目前的任务是让车辆根据特定情况调整其传输范围。我确实阅读了很多这样的问题(以及其他 topics/forums):
Vehicles Receive Beacon Messages outside RSU Range
Reduce the coverage area between vehicles
我的问题:
如何 - 真正地 - 仅更改某些节点的传输范围?
从上面的链接,我知道“传输范围”这个词,从技术上讲,与接收功率、噪声、灵敏度阈值等定义了接收概率有关。
由于我是 veins(以及 omnet++)的新手,我做了一些测试并得出以下结论:
“TraCIMobility”模块可以调整节点参数(每辆车都有一个实例),如ID、速度等
我也可以实例化“Mac1609_4”(对于每辆车)并在模拟期间更改它的一些参数,例如“txPower”运行-time 但是对实际通信范围无影响。
我无法实例化(因为它是全局的)“连接管理器”模块,它是唯一负责(并覆盖)有效通信范围的模块。这个模块可以在“.ini”文件中配置,但我想要不同的传输功率,最重要的是“可以在 运行 时间内更改”。
计算传输范围的公式在附件中,我明白了,但它必须是一种在其中一层中定义或更改这些参数的方法(即使它在phy 层,即类似附加信号强度的东西...)
再说一遍,可能我说的有些错误,我只是想知道what/how改变这个传输范围。
此致,
你增加 mac1609_4.txPower
parameter to have a node send with more power (hence, the signal being decodable further away). Note, however, that (for Veins 4.4) you will also need to increase connectionManager.pMax
是正确的,因为这个值用于确定接收模拟模块将被告知正在进行的传输的最大距离(远离传输模拟模块)。距离较远的任何接收模拟模块都不会受到传输的影响(在解码候选的意义上,但也在有助于干扰的意义上)。
另请注意,(否则)完全空闲信道上的传输比典型负载信道上的传输要远得多。如果您想很好地测量传输的距离,让一些节点产生干扰(通过传输它们自己的广播),然后查看帧传送率 (FDR) 如何随着发送方和接收方之间的距离增加而下降。
最后,请注意 1) 本底噪声和 2) 接收器的模拟模块尝试解码帧所需的最小功率电平需要针对您要模拟的 WLAN 卡进行校准。 Veins 4.4 教程示例中选择的值对于演示 Veins 的概念非常有用,而 values of more recent versions of Veins come closer to what you would expect from a "typical" WLAN card used in some of the more recent field tests. See the paper 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),"connection manager"负责评估"potential"数据包交换,因此,它的传输功率几乎总是设置为上限。
我在更改车辆 "Mac1609_4" 传输功率和 "graphically" 后感到困惑,连接管理器仍然向我显示数据包被一些远节点接收,实际上不是在这种情况下,它只是评估它是否被正确接收(通过上面链接中讨论的公式)。
因此:改变每辆车的 "TxPower" 除了图形化效果之外(消息没有安装到上层)。
总而言之,要制定一个传输范围感知方案,这是必须要做的:
- 在发送方节点(车辆)中,与处理移动特性的指针"traci"类似,必须创建指向"mac1609"的指针并指向它,如下所示:
在"tracidemo11p.h"中添加->
#include "veins/modules/mac/ieee80211p/Mac1609_4.h"//added
#include "veins/base/utils/FindModule.h"//added
并作为同一“.h”文件中 "tracidemo11p" 的 class 中的受保护变量 ->
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的新手,可能已经用基本概念描述了,这些是在不到一周的时间内完成的(并且也会为新用户提供)。
希望对您有所帮助(并且正确)