Изменение длины сообщения WAVE (VEINS/OMNET++)

Как изменить длину сообщения WAVE. Способ setWsmLength не работает. Из ответа в здесь я понимаю, что это невозможно , так как эта функциональность не реализована в WAVE. Но полученный ответ очень расплывчатый. Он просит создать файл .msg, что понятно. А вот остальное не очень понятно. Может ли кто-нибудь прояснить или объяснить это?

P.S. Я не мог комментировать в этой ветке, поэтому пришлось задать новый вопрос.


person dutu    schedule 30.03.2016    source источник


Ответы (1)


WaveShortMessage — это пакет OMNeT++, поэтому всегда можно использовать addByteLength() для увеличения существующего размера или setByteLength() для установки нового размера, описание в OMNeT++ вручную. Определение нового сообщения не требуется.
Пример:

WaveShortMessage* wsm = prepareWSM("data", dataLengthBits, channel, dataPriority, -1,2);
wsm->setWsmData(blockedRoadId.c_str());
int byteLen = blockedRoadId.length(); // assuming that one char = one byte
wsm->addByteLength(byteLen);
person Jerzy D.    schedule 31.03.2016
comment
Спасибо за ответ. Я пытался сделать это, но это как-то не меняет результат. Я установил пропускную способность канала Veins на 3 Мбит/с и пытаюсь перегрузить систему. Но теперь независимо от того, насколько большой я установил размер пакета, система никогда не перегружается. Может проблема в том, что Veins не имитирует изменение размера пакетов? - person dutu; 04.04.2016
comment
Veins отправляет WaveShortMessage каждые beaconInterval периода. По умолчанию beaconInterval равно 1 с. Чтобы использовать пропускную способность 3 Мбит/с одним автомобилем, необходимо установить размер ... прим. 370 килобайт! Так что попробуйте уменьшить beaconInterval в omnetpp.ini. - person Jerzy D.; 04.04.2016