计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米



我正在使用静脉 5.0,我正在尝试计算车辆之间的距离并设置它们的速度。我想每秒计算一次,我想通过发送 wsm 消息来做到这一点。例如,我的目标是有 5 辆车,每辆车将与前车通信并获取其位置,目的是计算它们的距离并保持静态。我是新手,我不知道如何处理它。 我试图在handlePositionUpdate上做这样的事情

void TraCIDemo11p::handlePositionUpdate(cObject* obj)
{
DemoBaseApplLayer::handlePositionUpdate(obj);
// stopped for for at least 10s?
if (x<simTime()){ 
TraCIDemo11pMessage* wsm1 = new TraCIDemo11pMessage();
populateWSM(wsm1);
wsm1->setPosition(mobility->getPositionAt(simTime())); 
wsm1->setSpeed(mobility->getSpeed()); 
if (dataOnSch) {
startService(Channel::sch2, 42, "Traffic Information Service");
message to self to send later
scheduleAt(computeAsynchronousSendingTime(1,ChannelType::service), wsm1);
}
else {
sendDown(wsm1);
}
}

您正在描述实际上是一个队列应用程序。您可能希望将源代码基于Plexe,这是Veins的队列扩展。它已经配备了最先进的距离控制器,如PATHPloeg.更多信息可以在 http://plexe.car2x.org/

相关内容

最新更新