汽车跟随两个不同的应用层

时间:2017-06-11 23:38:58

标签: omnet++ veins

我正在建立一个攻击场景,其中车辆攻击者跟随另一辆车正常攻击者开始向BSM发送错误的位置数据,以使正常停在正在行驶的道路上。

我已为攻击者实施AttackerCarApplLayer以使用专门为其定义的函数,并为{em>普通使用NormalCarApplLayer

我已在omnetpp.ini中定义了TraCIScenarioManager设置,如下所示:

##########################################################
#            TraCIScenarioManager parameters             #
##########################################################
*.manager.updateInterval = 0.1s
*.manager.host = "localhost"
*.manager.port = 9999
*.manager.moduleType = "org.car2x.veins.nodes.AttackerCar"
*.manager.moduleName = "attacker"
*.manager.moduleType = "org.car2x.veins.nodes.Car"
*.manager.moduleName = "car"
*.manager.moduleDisplayString = ""
*.manager.autoShutdown = true
*.manager.margin = 25
#launch config. tells Veins which SUMO configuration to run
*.manager.configFile = "newyork.sumo.cfg"
#launch command. change sumo-gui with sumo depending on what you want to launch
*.manager.commandLine = "sumo-gui --remote-port $port --seed $seed --configuration-file $configFile"

NormalCarWaveApplLayer设置为:

##########################################################
#                    WaveAppLayer                        #
##########################################################
*.car[*].applType = "NormalCarApplLayer"
*.car[*].appl.debug = false
*.car[*].appl.headerLength = 256 bit
*.car[*].appl.sendBeacons = true
*.car[*].appl.dataOnSch = false
*.car[*].appl.beaconInterval = 1s
*.car[*].appl.beaconPriority = 3
*.car[*].appl.dataPriority = 2
*.car[*].appl.maxOffset = 0.005s
*.car[*].appl.avoidBeaconSynchronization = true

AttackerCarWaveApplLayer设置为:

##########################################################
#                   Attacker WaveAppLayer                #
##########################################################
*.attacker[*].applType = "AttackerCarApplLayer"
*.attacker[*].appl.debug = false
*.attacker[*].appl.headerLength = 256 bit
*.attacker[*].appl.sendBeacons = true
*.attacker[*].appl.dataOnSch = false
*.attacker[*].appl.beaconInterval = 1s
*.attacker[*].appl.beaconPriority = 3
*.attacker[*].appl.dataPriority = 2
*.attacker[*].appl.maxOffset = 0.005s
*.attacker[*].appl.avoidBeaconSynchronization = true

模拟启动时,只为{em>普通和攻击者实例化AttackerCarApplLayer。这是实现目标的正确方法吗?如果没有,请建议您的想法。

1 个答案:

答案 0 :(得分:3)

您目前在模拟的moduleType文件中指定了两次moduleName.ini。 OMNeT ++的默认行为,使用它为参数找到的第一个值。这不太可能是你想要的。如果您可以为攻击者和普通汽车使用不同的SUMO车辆类型,请按以下方式解决问题:

Veins 4.5允许您对moduleTypemoduleNamemoduleDisplayString使用不同的值,具体取决于SUMO车辆类型。只需为攻击者设置一种SUMO车辆类型,例如ATTACK,然后参考https://github.com/sommer/veins/blob/veins-4.5/src/veins/modules/mobility/traci/TraCIScenarioManager.cc#L63的语法在.ini文件中设置每种类型的配置。例如,*.manager.moduleName = "ATTACK=attacker *=car"