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

标签 c++ omnet++ veins

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

我计算了一条新路线,输出如下: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 的道路”)。

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

最佳答案

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/

相关文章:

c++ - 需要有关 Vigenere Cipher 程序的帮助

c++ - 有没有办法将一 block 分配的内存标记为只读?

c++ - Opengl 选择性 glClipPlane

omnet++ - 为什么模拟中计算的 CO2 排放值与 .sca 文件中存储的值不同?

c++ - 在 OMNet 上实现 SDN Controller

omnet++ - 静脉延迟不随信标频率或节点数而变化

omnet++ - 多种车辆类型中的多种应用

javascript - 所有面向对象的语言都会在内存中创建大量重复信息吗?

c++ - Omnet++:未知参数。不能在模拟中使用模块参数

veins - 静脉如何计算简单路径损耗模型中的 RSSI?