在我在Veins中模拟的场景中,我需要为car
节点确定它的下一个RoadID
值。由于此信息存储在模拟的.route
文件中,我认为可以将其提取出来。
RoadID
函数可以返回当前traci->getRoadID()
值。我探讨了它如何提取这个ID,并且可以通过addModule()
函数添加新模块,但我无法理解它是如何提取此信息的。
请帮忙。提前谢谢。
答案 0 :(得分:0)
据我所知,目前Veins没有这样的内置功能。您可以针对特定车辆执行getRouteId()
之类的操作。这将使你返回路线。
接下来,在您的应用程序(.cc
文件)中,您可以阅读当前示例的<example_name>.rou.xml
,其中可能包含以下内容:
<route id="4" edges="0/1to1/1 1/1to2/1"/>
从那里你可以推断出roadID,它实际上是边缘的名称。
我知道结果仍然不是最佳的。
答案 1 :(得分:0)
为了供将来参考,正如@ user4786271所指出的那样,目前尚未在Veins 4 alpha 2中实现,也未在SUMO 0.22中实现。
was added中的功能ticket #1823,计划在SUMO 0.24中添加。添加对Veins 4的支持的相应代码将是:
int32_t TraCICommandInterface::Vehicle::getRouteIndex() {
return traci->genericGetInt(CMD_GET_VEHICLE_VARIABLE, nodeId, VAR_ROUTE_INDEX, RESPONSE_GET_VEHICLE_VARIABLE);
}