Я пытаюсь смоделировать обмен данными между автомобилями в режиме имитации, используя конфигурацию D2D Multicast. Тем не менее, я замечаю, что никакие сообщения не отправляются между автомобилями непосредственно во время симуляции из-за этой ошибки, найденной в журнале симуляции:
** Event #4666 t=1.09 Highway.car[0].udpApp[0] (CbrSender, id=246) on selfmsg initTraffic (omnetpp::cMessage, id=2592)
**INFO (CbrSender)Highway.car[0].udpApp[0]: 1.09CbrSender::initTraffic - destination 224.0.0.10 not found
INFO (CbrSender)Highway.car[0].udpApp[0]: 1.09CbrSender::initTraffic - the node will retry to initialize traffic in 0.01 seconds**
Модуль назначения установлен в NULL (см. Кодовую ссылку ниже), следовательно,назначение не найдено
void CbrSender::initTraffic()
{
std::string destAddress = par("destAddress").stringValue();
cModule* destModule = getModuleByPath(par("destAddress").stringValue());
EV<<"destModule:"<<destModule<<endl;
if (destModule == NULL)
{
// this might happen when users are created dynamically
EV << simTime() << "CbrSender::initTraffic - destination " << destAddress << " not found" << endl;
Является ли эта ошибка из-за динамически создаваемых пользователей? Как это можно исправить?
Как уже упоминалось в readme.txt D2DMulticast, я установил группу многоадресной трансляции в demo.xml, чтобы UE могли получать многоадресное сообщение от отправителя.
<multicast-group hosts="car[*]" interfaces="wlan" address="224.0.0.10"/>
Параметры omnetpp.ini следующие:
[Config D2DMulticast]
### Enable D2D for the eNodeB and the UEs involved in direct communications ###
*.eNodeB*.d2dCapable = true
*.car[*].d2dCapable = true
**.amcMode = "D2D"
### Select CQI for D2D transmissions ###
# One-to-Many communications work with fixed CQI values only.
# Set the parameter **.usePreconfiguredTxParams and select the desired CQI using the parameter **.d2dCqi
**.usePreconfiguredTxParams = true
**.d2dCqi = ${cqi=7}
### Traffic configuration: one-to-many traffic between UEs (car[0] --> car[1..9]) ###
*.car[*].numUdpApps = 1
# Transmitter
*.car[0].udpApp[*].typename = "CbrSender"
*.car[0].udpApp[*].localPort = 3088+ancestorIndex(0)
*.car[0].udpApp[*].startTime = uniform(0s,0.02s)
*.car[0].udpApp[*].destAddress = "224.0.0.10" # IP address of the multicast group
*.car[0].udpApp[*].destPort = 1000
# Receivers (they must belong to the above multicast group)
*.car[1].udpApp[*].typename = "CbrReceiver"
*.car[1].udpApp[*].localPort = 1000
# enrolled multicast groups must be set in the HostAutoConfigurator (instead of demo.xml), seperated by a single space character
*.car[*].configurator.mcastGroups = "224.0.0.10"