Почему я могу отправлять BSM с модулями автомобиля, а не с RSU? - PullRequest
0 голосов
/ 29 марта 2019

У меня проблема с симуляцией вен, когда я пытаюсь отправить BSM с модулем RSU, и появляется ошибка:

"scheduleAt (): маяк сообщения (omnetpp :: cMessage) evt в настоящее время запланирован, используйте cancelEvent () перед изменением графика - в модуле (TraCIDemoRSU11p) "

Я пытался использовать разные методы (такие как sendDelayedDown и sendDown) и даже cancelEvent, но это был единственный способ, что сообщения отправлялисьот RSU до появления ошибки.

Этот фрагмент кода находится на модуле RSU.

void TraCIDemoRSU11p::createAndSendBSM(std::string xml)
{
    BasicSafetyMessage* bsm = new BasicSafetyMessage();

    bsm->setXMLBSM(xml);
    scheduleAt(simTime(), bsm);

}

Код, присутствующий на узлах транспортных средств, немного отличается и работает безпроблемы:

void TraCIDemo11p::createAndSendBSM(std::string xml)
{
    BasicSafetyMessage* bsm = new BasicSafetyMessage();

    bsm->setXMLBSM(xml);
    populateWSM(bsm);
    sendDown(bsm);
    scheduleAt(simTime()+1, sendBeaconEvt);
}

Насколько я понимаю, модуль пытается отправить сообщение до того, как последний прибудет в пункт назначения, однако я не знаю, как это исправить, или это правильнопуть.Заранее спасибо!

...