【发布时间】:2016-02-22 21:19:58
【问题描述】:
通过setWsmLength 设置WSM 的长度或通过setWsmData 添加一个大的有效载荷在模拟过程中有什么不同吗?我正在尝试模拟一个频繁使用的网络,但是更改这两个值中的任何一个似乎都没有任何区别。我找到了this,但想确认一下。如果我想改变 WSM 的大小,我必须实现它吗?
【问题讨论】:
通过setWsmLength 设置WSM 的长度或通过setWsmData 添加一个大的有效载荷在模拟过程中有什么不同吗?我正在尝试模拟一个频繁使用的网络,但是更改这两个值中的任何一个似乎都没有任何区别。我找到了this,但想确认一下。如果我想改变 WSM 的大小,我必须实现它吗?
【问题讨论】:
您可以在.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 is) cMessage 的子类,可以用来表示数据包 (帧、* 数据报、应用程序消息等)。 cPacket 增加长度 (以 * 位或字节为单位)、位错误标志和封装 cMessage 的能力。 * 长度和误码标志很重要 当数据包通过 * cDatarateChannel 或其他 支持数据速率和/或*错误建模的通道。 *
相关的Q&A 显示从cMessage 到cPacket 的转换。
【讨论】:
我知道这已经是几十年后的事了,但也许它可以帮助像我这样的一些新的 vanets 爱好者。
在 omnet++5.4.1 和 Veins 4.7.1 中,在函数中
填充WSM()
在BaseWaveApplLayer.cc (veins/modules/application/ieee80211p)中定义,可以用
wsm->setBitLength()
方法,它会改变 wsm 数据包的大小。默认情况下,它具有标题的长度
wsm->setBitLength(headerLength)
我玩过这个并且可以获得不同的数据包大小。
希望这是有用的。
【讨论】: