Отправленные подтверждения принимаются несколькими узлами в Veins-4a2 с использованием метода prepareWSM

Я использую OMNeT++-4.6, sumo-0.22.0 и Veins-4a2.

В моем сценарии, когда RSU получает сообщение от узла, он отправляет ACK, используя метод prepareWSM:

sendWSM (prepareWSM ("ack", ackLengthBits, type_SCH, ackPriority, senderId, 2))

Таким образом, RSU отправляет ACK на senderID, который является узлом отправителя сообщения.

В моем файле журнала я заметил, что есть некоторые узлы - не только исходный узел отправителя - которые получают этот ACK.

Мне нужно знать, правильно ли метод prepareWSM распространяет ACK по всем встреченным узлам или правильно ли я отправил только ACK на узел отправителя?

1 ответ

Решение

Хотя вы можете установить адрес получателя для WaveShortMessage, он игнорируется в Mac1609_4.cc (строка 178 и далее), поскольку первоначально в C2X-коммуникации используется только широковещательная передача:

//send the packet
Mac80211Pkt* mac = new Mac80211Pkt(pktToSend->getName(), pktToSend->getKind());
mac->setDestAddr(LAddress::L2BROADCAST);

Чтобы получить желаемую систему подтверждения, вы должны проверять адрес получателя каждого сообщения, получаемого вами на уровне APP, и игнорировать сообщения, которые не адресованы вашему адресу (myId).

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