我正在使用 OMNET++、静脉和 SUMO 构建一个 ITS 应用程序,我正在尝试
用不同的路线更新车辆的路线。然而,我在静脉中发现的两个命令(commandRouteChange
、commandNewRoute
)都不起作用。
我计算了一条新路线,输出如下:std::string newRoute = "AtoB BtoC CtoD DtoE";
然后我尝试设置此 newRoute
到车辆:
traci->getManager()->commandNewRoute(vehicleID, newRoute);
然后我收到以下错误:模块 (ITS) VANET.host[0].appl (id=9) 在事件 #127412 中出错,t=12:模型错误:TraCI 服务器报告错误执行命令0xc4(“无法检索 ID 为 AtoB BtoC CtoD DtoE 的道路”)。
我在搜索时发现 commandNewRoute
和 commandChangeRoute
仅接收一条边作为参数。但我想设置一条完整的车辆路线。有谁知道我该怎么做?
最佳答案
Veins 2.1 仅通过修改其目标道路 (Command 0xc4 0x31) 或修改其对行驶时间的感知 (Command 0xc4 0x58) 来实现更改车辆路线的命令。
较新版本的 Veins 还实现了一个用于设置任意路由的命令 ( Command 0xc4 0x57 ),这正是您所要求的。
我建议切换到 Veins 4.3 ,它与最新版本的 SUMO 一起工作,并为您提供了许多改进的、功能更丰富的其他组件的模拟模型。如果您无法升级 Veins,执行所需的命令也应该很简单。
关于c++ - 如何在 veins2.1 中更新车辆的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121940/