在 RSU 模块中处理 traci

Handling traci in the RSU module

上下文:

在我的程序中,我有一个带红绿灯的十字路口,可以协调车辆的移动。

在垂直车道上,电车穿越的频率不高。横车道上,车辆频繁。

在我的通讯模拟实验中,有轨电车的优先级高于汽车。

所以当它接近十字路口时,想法是电车不停地穿过。

在十字路口附近有一个 RSU,它监控电车坐标以及电车何时足够近

它将向该 RSU 发送一条消息。

我可以成功地控制车辆的交通信号灯(因为它们可以访问 traci)。

但我的下一个目标是让RSU收到消息后协调红绿灯

问题:

如何让 RSU 模块在车辆使用的同时处理 traci?

尝试:

在此之后 question 我尝试在 RSU 中实现处理 traci 的代码,但没有成功

问题是这个:

//written in the TraCIDemoRSU11p.h
TraCIScenarioManager* manager;
TraCICommandInterface* traci;

.

//written in the TraCIDemoRSU11p.cc
void TraCIDemoRSU11p::initialize(int stage) 
{
    ...
    manager = TraCIScenarioManagerAccess().get();
    traci = manager->getCommandInterface();
    ...
}

总结:

有没有人知道如何在 RSU 中使用 traci 并且可以帮助我也使用它?

这对我的项目很有帮助,谢谢!

详情:

当我初始化并尝试获取 TraCI 命令接口时,错误并没有发生,

但是当我尝试用它来改变红绿灯程序和阶段时。

您很可能在初始化并连接到 SUMO 之前尝试使用 TraCI 界面。这发生在用户可配置的时间,但在所有模块都已初始化之后。

运行 您在调试器或 valgrind 中的模拟会指出错误发生的位置。您可以参阅常见问题解答以获取有关如何在任一模式下启动模拟的帮助。