为什么RSU收到调度的自消息后仍开始向节点发送BSM消息,即使我没有实现任何BSM发送

时间:2019-09-16 14:21:48

标签: omnet++ veins

我正在尝试学习静脉,这是RSU应用程序类中的初始化:

void rsuApp::initialize(int stage) {
   BaseWaveApplLayer::initialize(stage);
   if(stage == 0){
       event = new cMessage("event");
       EV << "Scheduling first send to t=5.0s\n";
       scheduleAt(200.0, event);
   }
}

我在第二秒安排了一个自发消息 这是handleSelfMsg()函数代码:

void rsuApp::handleSelfMsg(cMessage* msg) {
    BaseWaveApplLayer::handleSelfMsg(msg);
    findHost()->getDisplayString().updateWith("r=360,pink");
}

在模拟过程中,RSU接收selfMsg之前(在第二200之前)没有任何反应,但是当RSU在第二200接收到自身消息时,即使我没有实现任何BSM发送,它也开始向其他节点发送BSM。 >

我不知道BSM和信标是否相同,但是我将omnetpp.ini中的sendBeacons参数设置为false,但是RSU在接收到自身消息后仍然发送BSM消息

*.rsu[*].appl.sendBeacons = false

所以我想知道为什么RSU收到自身消息后开始向其他节点发送BSM 预定事件和BSM之间有关系吗?

1 个答案:

答案 0 :(得分:1)

在方法handleSelfMsg中,您调用BaseWaveApplLayer::handleSelfMsg(msg)。该方法正在填充基本安全消息(BSM)并将其作为广播发送到方案中的所有其他节点。

sendBeacons仅控制是否定期执行此操作以发送定期信标。如果启用,则调用与上述相同的方法,并发送BSM(请参见here)。