处理RSU模块中的traci

时间:2017-03-14 01:27:39

标签: omnet++ veins

背景:

在我的程序中,我有一个交通信号灯,可以协调车辆的运动。

在垂直车道上,电车不会频繁穿过。在水平车道上,车频繁。

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

因此,当它接近交叉路口时,想法是电车不停地越过。

在交叉路口附近有一个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命令界面时,错误不会发生,

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

1 个答案:

答案 0 :(得分:1)

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

在调试器或valgrind中运行模拟将指向错误发生的位置。有关如何在任一模式下启动模拟的帮助,请参阅常见问题解答。