【问题标题】:Changing WSM(WAVE Short Message) packet size in Veins在 Veins 中更改 WSM(WAVE 短消息)数据包大小
【发布时间】:2016-02-22 21:19:58
【问题描述】:

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

【问题讨论】:

    标签: omnet++ veins 802.11p


    【解决方案1】:

    您可以在.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 显示从cMessagecPacket 的转换。

    【讨论】:

      【解决方案2】:

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

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

      填充WSM()

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

      wsm->setBitLength()

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

      wsm->setBitLength(headerLength)

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

      希望这是有用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多