首页 > 解决方案 > 在 SUMO 和 OMNeT++ 中创建红绿灯

问题描述

如何在 OMNeT++ 和 SUMO 中创建红绿灯 ,我必须创建红绿灯并使用静脉示例在 XML 文件中配置哪个文件

标签: omnet++veinssumo

解决方案


用于 SUMO 交通灯的 OMNeT++ 代理模块自 Veins 4.7 起可用。

如果您的网络包含红绿灯,则需要将以下行添加到您的 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 master 分支中,YOURAPPLAYERTYPE是一个 OMNeT++ 模块,它使用 .DemoBaseApplLayer作为基础模块。

class YOURAPPLAYERTYPE: public DemoBaseApplLayer {
....
}

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

class YORUTRAFFICLIGHTLOGIC: public TraCITrafficLightAbstractLogic{
....
}

推荐阅读