如何在 veins2.1 中更新车辆的路线?

How can I update vehicle's route in veins2.1?

我正在使用 OMNET++、静脉和 SUMO 构建一个 ITS 应用程序,我正在尝试 用不同的路线更新车辆的路线。但是我在 veins 中发现的两个命令(commandRouteChangecommandNewRoute)都不起作用。

我计算了一条新路线,输出是这样的:std::string newRoute = "AtoB BtoC CtoD DtoE"; 然后我尝试将这个 newRoute 设置到车辆:

traci->getManager()->commandNewRoute(vehicleID, newRoute);

然后我得到以下错误:Error in module (ITS) VANET.host[0].appl (id=9) at event #127412, t=12: Model error: TraCI server reported error executing command 0xc4 ("Can not retrieve road with ID AtoB BtoC CtoD DtoE ").

我在搜索时看到 commandNewRoutecommandChangeRoute 仅接收一条边作为参数。但我想设置一条完整的车辆路线。有谁知道我该怎么做?

Veins 2.1 仅实现了通过修改目标道路 (Command 0xc4 0x31) or by modifying its perception of travel times (Command 0xc4 0x58) 来改变车辆路线的命令。

较新版本的 Veins 还实现了设置任意路由的命令 (Command 0xc4 0x57),这正是您所要求的。

我建议切换到 Veins 4.3,它可以与最新版本的 SUMO 一起使用,并为您提供许多改进的、功能更丰富的其他组件的模拟模型。如果您无法升级 Veins,执行所需的命令也应该很简单。