Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取特定范围内的车辆数量_C++_Simulation_Omnet++_Veins_Sumo - Fatal编程技术网

C++ 如何获取特定范围内的车辆数量

C++ 如何获取特定范围内的车辆数量,c++,simulation,omnet++,veins,sumo,C++,Simulation,Omnet++,Veins,Sumo,在静脉中,我试图模拟一个VANET场景,在这个场景中,如果道路被阻塞,那么在特定时间之后,汽车会广播一条消息,包括阻塞的道路ID和100米周围的车辆数量 在TraCIDemo11p应用程序中,当车辆停止超过10秒时,它会将节点颜色更改为红色(以显示事故),并向其他车辆发送包含阻塞道路id的消息,所有这一切都是通过handlePositionUpdate方法完成的: findHost()->getDisplayString().updateWith("r=16,red"); sentMess

在静脉中,我试图模拟一个VANET场景,在这个场景中,如果道路被阻塞,那么在特定时间之后,汽车会广播一条消息,包括阻塞的道路ID和100米周围的车辆数量

在TraCIDemo11p应用程序中,当车辆停止超过10秒时,它会将节点颜色更改为红色(以显示事故),并向其他车辆发送包含阻塞道路id的消息,所有这一切都是通过handlePositionUpdate方法完成的:

findHost()->getDisplayString().updateWith("r=16,red");
sentMessage = true;

WaveShortMessage* wsm = new WaveShortMessage();
populateWSM(wsm);
wsm->setWsmData(mobility->getRoadId().c_str());

//host is standing still due to crash
if (dataOnSch) {
    startService(Channels::SCH2, 42, "Traffic Information Service");
    //started service and server advertising, schedule message to self to send later
    scheduleAt(computeAsynchronousSendingTime(1,type_SCH),wsm);
}
else {
    //send right away on CCH, because channel switching is disabled
    sendDown(wsm);
}
可以通过更新.ini文件中的maxInterfDist值来设置100m的限制

*.connectionManager.maxInterfDist = 100m

现在我的问题是如何获得车辆数量和100米的面积,我有一个想法,这将使用TraCI完成,很可能使用,但我不知道如何在静脉中完成,它们是否有任何等效的方法,或者我看错了方向?

您可以使用该方法在OMNeT++模拟中获得所有车辆的列表。从这里,计算任意两台主机之间的距离应该很简单(它们在OMNeT++画布上的位置相当于它们的位置,以米为单位)。

您可以使用该方法获得OMNeT++模拟中所有车辆的列表。因此,计算任意两台主机之间的距离应该很简单(它们在OMNeT++画布上的位置相当于它们的位置,以米为单位)