如何从 SUMO 车辆 ID 获取车辆 ID 和类型作为唯一标识符

How to get vehicle ID and type as unique Identifier from SUMO vehicle ID

我正在使用 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 并区分车辆 car 和 bus。 我阅读了有关添加 getExternalId() 的内容,但找不到任何清晰详细的解释它是如何工作的,以及如何在 omnet++

中添加这些代码

classTraCIMobility提供了获取外部id(即SUMO id)的功能

示例应用程序 TraCIDemo11p 展示了如何在您的应用程序中获得移动性。然后唯一剩下要做的就是调用 traci->getExternalId() 其中 returns 作为字符串的 id。

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