4

通过设置 WSM 的长度setWsmLength或通过添加大的有效载荷setWsmData在模拟过程中有什么不同吗?我正在尝试模拟一个频繁使用的网络,但是更改这两个值中的任何一个似乎都没有任何区别。我找到了这个,但想确认一下。如果我想改变 WSM 的大小,我必须实现它吗?

4

2 回答 2

4

您可以在一个文件中为您的应用程序实现一个数据包,.msg如下所示:

cplusplus {{
#include "veins/modules/messages/WaveShortMessage_m.h"
}}

class WaveShortMessage;

message MyAppsPacket extends WaveShortMessage {
    string sourceAddress;           
    string destinationAddress;      
    simtime_t sendingTime;
}

然后在您的代码中,您可以使用内置的setByteLength(). 为您的消息使用cPacket子类,因为:

(cPacket 是)cMessage 的子类,可用于表示数据包(帧、* 数据报、应用程序消息等)。cPacket 为 cMessage 添加长度(以 * 位或字节为单位)、位错误标志和封装能力。* 当数据包通过 * cDatarateChannel 或其他支持数据速率和/或 * 错误建模的通道时,长度和误码标志很重要。*

显示从到的铸造的相关问答cMessagecPacket

于 2016-02-23T11:54:52.100 回答
0

我知道这是几十年后的事了,但也许它可以帮助像我这样的新 Vanets 爱好者。

在 omnet++5.4.1 和 Veins 4.7.1 中,在函数中

填充WSM()

在 BaseWaveApplLayer.cc (veins/modules/application/ieee80211p) 中定义,您可以使用

wsm->setBitLength()

方法,它会改变 wsm 数据包的大小。默认情况下,它具有标题的长度

wsm->setBitLength(headerLength)

我玩过这个并且可以获得不同的数据包大小。

希望这是有用的。

于 2018-10-15T12:54:44.447 回答