Изменение размера пакета WSM(короткое сообщение WAVE) в венах

Есть ли установка длины WSM через setWsmLength или добавление большой полезной нагрузки через setWsmData какая разница во время симуляции? Я пытаюсь смоделировать интенсивно используемую сеть, но изменение любого из этих двух значений, похоже, не имеет значения. Я нашел это, но хотел подтвердить это. И если я хочу изменить размер WSM, я должен это реализовать?

2 ответа

Решение

Вы можете реализовать пакет для вашего приложения в .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 или другой канал, который поддерживает скорость передачи данных и / или * моделирование ошибок. *

Связанные вопросы и ответы, которые показывают кастинг от cMessage в cPacket,

Я знаю, что это десятилетия спустя, но, возможно, это может помочь некоторым новым любителям ванет, таким как я.

В омнет ++5.4.1 и вене 4.7.1, в функции

populateWSM()

определенный в BaseWaveApplLayer.cc (veins/modules/application/ieee80211p), вы можете установить длину в битах с помощью

wsm->setBitLength()

метод и это изменяет размер пакета wsm. По умолчанию он имеет длину заголовка

wsm->setBitLength(headerLength)

Я играл с этим и мог получить пакеты разных размеров.

Надеюсь, это полезно.

Другие вопросы по тегам