如何从一个 RSU 向另一个 RSU 发送消息? 我在默认示例中使用 Veins 5.2 版本,我刚刚添加了一个 RSU(一个非常接近另一个)。我可以使用
sendDown()
或 sendDelayedDown()
方法从车辆到车辆、从车辆到 RSU 以及从 RSU 到车辆发送消息。
然而,当我尝试从一个 RSU 向另一个 RSU 发送消息时,它根本不起作用,因为目标 RSU 没有收到该消息。
我应该在我的项目中做什么才能让它发挥作用?或者RSU之间发送消息的正确方法是什么?
谢谢你。
您一定忘记使用 populate() 方法:
populate(wsm, ADDRESS);
在初始化方法中你可以这样写:
void MyRSUClass::initialize(int stage) {
DemoBaseApplLayer::initialize(stage);
if (stage == 1) {
std::cout << "#init" << endl;
TraCIDemo11pMessage* wsm = new TraCIDemo11pMessage*();
populateWSM(wsm, OTHER_RSU_ADDRESS); // <------- here**
wsm->setSenderAddress(myId);
wsm->setDemoData("Message from RSU");
sendDown(wsm);
// OR, if you have problems with sendDown() method
// use send() ou sendDelayed() methods:
//// send(wsm, "lowerLayerOut");
//// sendDelayed(wsm, 2, "lowerLayerOut");
}
}