Изменение размера пакета 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)
Я играл с этим и мог получить пакеты разных размеров.
Надеюсь, это полезно.