我正在尝试学习纹理,这是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);
}
}
我在200秒时安排了一条自我消息,这是handleSelfMsg()函数代码:
void rsuApp::handleSelfMsg(cMessage* msg) {
BaseWaveApplLayer::handleSelfMsg(msg);
findHost()->getDisplayString().updateWith("r=360,pink");
}
在模拟期间,在rsu接收selfMsg之前(在秒200之前)没有发生任何事情,但是当RSU在秒200接收到self消息时,它开始向其他节点发送BSM,即使我没有实现任何BSM发送
我不知道BSM和beacons是否是一回事,但是我将omnetpp.ini中的sendBeacons参数设置为false,但是RSU在收到self消息后仍然发送BSM消息
*.rsu[*].appl.sendBeacons = false
所以我想知道为什么RSU在收到self消息后开始向其他节点发送BSM,计划事件和BSM之间有关系吗?
发布于 2020-01-08 14:00:48
在您的方法handleSelfMsg
中,您调用BaseWaveApplLayer::handleSelfMsg(msg)
。此方法填充基本安全消息(BSM)并将其作为广播发送到方案中的所有其他节点。
sendBeacons
仅控制是否定期执行此操作,以便定期发送信标。如果启用,将调用与上述相同的方法并传输BSM (参见here)。
https://stackoverflow.com/questions/57958873
复制相似问题