如何在 Veins 中找到汽车未来的 RoadID?
How to find future RoadIDs for a car in Veins?
在 Veins 中模拟的场景中,我需要确定 car
节点的下一个 RoadID
值。由于此信息存储在模拟的 .route
文件中,因此我认为可以将其提取出来。
当前RoadID
值可以由traci->getRoadID()
函数返回。我探索了它如何提取此 ID 并可能到达 addModule()
函数添加新模块的地步,但我无法理解它如何提取此信息。
请帮忙。提前致谢。
据我所知,目前 Veins 没有这样的内置功能。您可以为特定车辆执行类似 getRouteId()
的操作。那将 return 你的路线。
接下来,在您的应用程序(.cc
文件)中,您可以阅读当前示例的 <example_name>.rou.xml
,其中可能包含如下内容:
<route id="4" edges="0/1to1/1 1/1to2/1"/>
从那里你可以推断出 roadID,它实际上是边缘的名称。
我知道结果不会是最优的。
供将来参考,如@user4786271 所述,目前 Veins 4 alpha 2 和 SUMO 0.22 均未实现此功能。
功能 was added in 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);
}
在 Veins 中模拟的场景中,我需要确定 car
节点的下一个 RoadID
值。由于此信息存储在模拟的 .route
文件中,因此我认为可以将其提取出来。
当前RoadID
值可以由traci->getRoadID()
函数返回。我探索了它如何提取此 ID 并可能到达 addModule()
函数添加新模块的地步,但我无法理解它如何提取此信息。
请帮忙。提前致谢。
据我所知,目前 Veins 没有这样的内置功能。您可以为特定车辆执行类似 getRouteId()
的操作。那将 return 你的路线。
接下来,在您的应用程序(.cc
文件)中,您可以阅读当前示例的 <example_name>.rou.xml
,其中可能包含如下内容:
<route id="4" edges="0/1to1/1 1/1to2/1"/>
从那里你可以推断出 roadID,它实际上是边缘的名称。
我知道结果不会是最优的。
供将来参考,如@user4786271 所述,目前 Veins 4 alpha 2 和 SUMO 0.22 均未实现此功能。
功能 was added in 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);
}