我正在尝试学习静脉,这是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之间有关系吗?
答案 0 :(得分:1)
在方法handleSelfMsg
中,您调用BaseWaveApplLayer::handleSelfMsg(msg)
。该方法正在填充基本安全消息(BSM)并将其作为广播发送到方案中的所有其他节点。
sendBeacons
仅控制是否定期执行此操作以发送定期信标。如果启用,则调用与上述相同的方法,并发送BSM(请参见here)。