我正在开发一个项目,其中 RSU 向其范围内的汽车发送信标。当汽车收到该信标时,它应该将其 ID 发送回 RSU。我制作了一个自定义消息文件,其中仅包含车辆 ID .这就是我现在处理信标的方式。
void MyVeinsApp::onBSM(DemoSafetyMessage* bsm)
{
findHost()->getDisplayString().setTagArg("i", 1, "green");
if(sentMessage==false){
sendDown(bsm);
//scheduleAt(simTime() + 2 + uniform(0.01, 0.2), wsm->dup());
sentMessage=true;
}
} 这对我来说根本不起作用。有什么方法可以从汽车向 RSU 发送消息吗?
我不是专家,但我最近开始与您一起从事类似的项目。因此,您的消息包含一个参数,例如,vehicle_id,并且在收到信标后,您必须将包含 id 的消息发送到 RSU。要执行此操作,您必须首先在消息中填写车辆 ID,例如
bsm->setVehicle_id(findHost()->getIndex());
当您创建一个包含变量的新消息文件然后构建它时,程序还会创建 get() 和 set() 函数来处理这些参数。
现在,RSU 要简单地获取您发送的消息变量,它必须调用 get() 函数,如下所示:
RSU_vehicle_id=wsm->getVehicle_id();
现在您有了一个包含接收到的车辆节点 ID 的变量。 我强烈建议您花几天时间来了解 Veins 教程背后的原理以及它如何处理所有方面。
嘿,我正在 omnet 相扑静脉工作,我正在尝试了解静脉示例中发生的情况。如果你如何理解代码将会非常有帮助。如果您有代码,请分享。提前谢谢你。