【问题标题】:How to get vehicle ID and type as unique Identifier from SUMO vehicle ID如何从 SUMO 车辆 ID 获取车辆 ID 和类型作为唯一标识符
【发布时间】:2016-01-14 03:44:01
【问题描述】:

我正在使用 sumo 0.21.0 、 omnet++ 4.6 和 Veins 3.0 我成功地将我的交通移动模拟 (sumo) 与网络模拟 (omnet++) 连接起来。 我在 sumo rou 文件中有车辆路线流,

 <vType accel="2.0" decel="2.0" id="CarA" length="5.0" maxSpeed="15.0" minGap="2.5" sigma="0" vClass="passenger"/>
<vType accel="2.0" color="0,1,0" decel="2.0" guiShape="bus" id="BUS" length="10" maxSpeed="12.0" minGap="2.5" sigma="0" speedDev="0.1" speedFactor="1.2" vClass="bus"/>

`<flow begin="0" id="Bus1001" period="510" type="BUS" departSpeed="12" departLane="0">
    <route edges="D1"/>
    <stop busStop="busstop1" duration="8.470000284081323"/>
</flow>
<flow begin="0" color="0,0,1" id="car0" period="30" type="CarA" departSpeed="15" departLane="1">
    <route edges="D1"/>
</flow>`

并有 2 种类型的车辆 BUS 和 CarA。 我想使用 sumo 车辆 ID 作为 omnet++ 中的节点 id 并区分车辆和公共汽车。 我阅读了有关添加 getExternalId() 的信息,但我找不到任何清晰详细的解释它是如何工作的,以及如何在 omnet++ 中添加这些代码

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    TraCIMobility 类提供了获取外部 id(即 SUMO id)的函数。

    示例应用程序TraCIDemo11p 展示了如何在您的应用程序中获得移动性。那么剩下要做的就是调用traci-&gt;getExternalId(),它将id作为字符串返回。

    请注意,此答案适用于 Veins 3.0。对于较新的版本,它以类似的方式工作。

    【讨论】:

    • 谢谢@floxyz 的解释 我使用示例应用程序 TraCIDemo11p 并且可以在模块日志中显示它使用这样的相扑车辆 ID updatePosition: HostMove startPos: (35.1,29.95,1.895) direction: (1,-0,0) startTime: 1 speed: 12 Added vehicle **#Bus1001.0** updatePosition: HostMove startPos: (30.1,26.65,1.895) direction: (1,-0,0) startTime: 1 speed: 15 Added vehicle **#car0.0** 我只是想知道在哪里可以找到TraCIMobility / TraCIDemo11p中获取ExternalId的声明。
    • 在我的回答中,我将代码链接到提供声明和示例代码的两个必要类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-13
    相关资源
    最近更新 更多