我的静脉仿真出现问题,我尝试通过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);
}
我的理解是,该模块正在尝试在最后一条到达目的地之前发送消息,但是,我不知道如何解决此问题,或者这是否是正确的方法。 预先感谢!