【问题标题】:Veins Multiple Applications in multiples Vehicle types多种车辆类型中的多种应用
【发布时间】:2017-11-27 16:20:11
【问题描述】:

在我使用 OMNeT++、Veins 和 SUMO 的模拟中,我想根据车辆类型运行多个应用程序,如使用 type="XXX".rou.xml 文件中指定的那样

例如:

  • <vehicle ... type="private" ... > 运行 APP_private(使用类似 *.node[*].applType ="APP_private" 的东西)
  • <vehicle ... type="bus" ... > 运行 APP_bus(使用类似 *.node[*].applType ="APP_bus" 的东西)

如何在omnetpp.ini 中定义它?

【问题讨论】:

    标签: omnet++ veins sumo


    【解决方案1】:

    Veins 4.6 允许您将任何或所有 moduleTypemoduleNamemoduleDisplayString 参数设置为字符串(这将设置 OMNeT++ 模块类型、模块名称和模块显示字符串以实例化分别为在配置的感兴趣区域内行驶的每辆车):

    您还可以将 moduleTypemoduleNamemoduleDisplayString 参数设置为 Veins 所称的 mapping。这将为不同的 SUMO 车辆类型使用不同的参数值。

    可以在源代码here 或 Veins 网站上找到完整的详细信息。这是简短的版本:

    • "a" :将值 "a" 分配给所有节点(为了向后兼容)
    • "a=b :将值 "b" 分配给车辆类型 "a"。模拟中存在任何其他车辆类型将导致模拟停止
    • "a=b c=d :将值 "b" 分配给车辆类型 "a" 并将 "d" 分配给 "c"。模拟中存在任何其他车辆类型将导致模拟停止
    • "a=b c=d *=e":所有不是车辆类型"a""b"的,赋值"e"

    "0" 的模块类型表示不实例化此模块。

    在您的具体情况下,使用*.manager.moduleName = "XXX=busNode *=node" 并配置*.busNode[*].applType = "APP_bus"*.node[*].applType = "APP_private" 似乎就足够了。

    【讨论】:

    【解决方案2】:

    我也有同样的问题。我尝试将模块名称设置为克里斯托夫的答案,但出现以下错误:“模块类型和模块名称的映射键不一样”似乎静脉映射功能映射了静脉模块类型“org.car2x.veins.nodes。 Car" 到静脉模块名称。

    但是,我设法通过定义一个静脉模块来匹配相同的键来解决这个错误,所以最终的 omnetpp.ini 设置将是:

    *.manager.moduleType = "XXX=org.car2x.veins.nodes.Car *=org.car2x.veins.nodes.Car"
    *.manager.moduleName = "XXX=busNode *=node"
    *.busNode[*].applType = "APP_bus"
    *.node[*].applType = "APP_private"
    

    【讨论】:

    • 这个功能在 inet 中是否相同?还是只是静脉?
    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 2020-04-06
    • 2021-08-06
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多