背景:
在我的程序中,我有一个交通信号灯,可以协调车辆的运动。
在垂直车道上,电车不会频繁穿过。在水平车道上,车频繁。
在我的通信模拟实验中,有轨电车的优先级高于汽车。
因此,当它接近交叉路口时,想法是电车不停地越过。
在交叉路口附近有一个RSU,用于监控电车坐标以及电车何时足够接近
它会向此RSU发送消息。
我可以成功控制车辆的交通灯(因为他们可以访问traci)。
但我的下一个目标是让RSU在收到消息后协调红绿灯。
问题:
如何在车辆使用时同时使RSU模块处理traci?
ATTEMPT:
在question之后我试图实现代码来处理RSU中的traci,但它没有工作
问题在于:Why I get an error code 139 if I run this code?
//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并且可以帮助我使用它?
这对我的项目非常有帮助,谢谢!
DETAIL:
当我初始化并尝试获取TraCI命令界面时,错误不会发生,
但是当我尝试用它来改变红绿灯程序和阶段时。
答案 0 :(得分:1)
您最有可能在初始化并连接到SUMO之前尝试使用TraCI接口。这发生在用户可配置的时间,但是在初始化所有模块之后。
在调试器或valgrind中运行模拟将指向错误发生的位置。有关如何在任一模式下启动模拟的帮助,请参阅常见问题解答。