Отправленные подтверждения принимаются несколькими узлами в 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).