Как правильно установить Destmodule (модуль назначения) для D2D Multicast моделирования - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь смоделировать обмен данными между автомобилями в режиме имитации, используя конфигурацию 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"
...