为什么我可以发送带有车辆模块的BSM,而不能发送RSU?

时间:2019-03-29 11:13:08

标签: omnet++ veins sumo

我的静脉仿真出现问题,我尝试通过RSU模块发送BSM,并且出现错误:

“ scheduleAt():目前正在计划Message(omnetpp :: cMessage)信标evt,请在重新计划--in模块(TraCIDemoRSU11p)之前使用cancelEvent()”

我尝试使用不同的方法(例如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);
}

我的理解是,该模块正在尝试在最后一条到达目的地之前发送消息,但是,我不知道如何解决此问题,或者这是否是正确的方法。 预先感谢!

0 个答案:

没有答案