在SUMO和OMNeT ++中创建交通信号灯

时间:2018-12-09 13:50:53

标签: omnet++ veins sumo

如何在OMNeT ++和SUMO中创建交通 信号灯,我必须创建交通信号灯,并使用静脉示例在XML文件中进行配置。

1 个答案:

答案 0 :(得分:2)

从Veins 4.7开始,提供了用于SUMO交通信号灯的OMNeT ++代理模块。

如果您的网络中包含交通信号灯,则需要在omnetpp.ini文件中添加以下几行:

*.manager.trafficLightModuleType = "org.car2x.veins.nodes.TrafficLight"
*.manager.trafficLightModuleName = "trafficLight"
*.manager.trafficLightModuleDisplayString = default
*.manager.trafficLightFilter = "MYTRAFFICLIGHTID"
*.trafficLight[*].mobility.x = 0
*.trafficLight[*].mobility.y = 0
*.trafficLight[*].mobility.z = 3

*.trafficLight[*].applType = "YOURAPPLAYERTYPE"
*.trafficLight[*].logicType = "YORUTRAFFICLIGHTLOGIC"

MYTRAFFICLIGHTID一词需要替换为您在SUMO网络中使用的ID。如果要控制多个交通信号灯,则可以列出用空格分隔的SUMO ID。

交通信号灯由一个应用程序(YOURAPPLAYERTYPE)和一个逻辑(YORUTRAFFICLIGHTLOGIC)组成。这两个属性都是必需的,需要在omnetpp.ini中指定。

在当前的Veins主分支中,YOURAPPLAYERTYPE是OMNeT ++模块,它使用DemoBaseApplLayer作为基础模块。

class YOURAPPLAYERTYPE: public DemoBaseApplLayer {
....
}

YORUTRAFFICLIGHTLOGIC是OMNeT ++模块,它使用TraCITrafficLightAbstractLogic作为基础模块。

class YORUTRAFFICLIGHTLOGIC: public TraCITrafficLightAbstractLogic{
....
}