如何在Veins找到未来的RoadID?

时间:2015-06-12 13:18:56

标签: omnet++

在我在Veins中模拟的场景中,我需要为car节点确定它的下一个RoadID值。由于此信息存储在模拟的.route文件中,我认为可以将其提取出来。

RoadID函数可以返回当前traci->getRoadID()值。我探讨了它如何提取这个ID,并且可以通过addModule()函数添加新模块,但我无法理解它是如何提取此信息的。

请帮忙。提前谢谢。

2 个答案:

答案 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);
}