如何在OMNeT ++和SUMO中创建交通 信号灯,我必须创建交通信号灯,并使用静脉示例在XML文件中进行配置。
答案 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{
....
}