静脉 getRoadID()

Veins getRoadID()

void TraCIDemo11p::onData(WaveShortMessage* wsm) {
if (mobility->getRoadId()[0] != ':') traciVehicle->changeRoute(wsm->getWsmData(), 9999);

}

当车辆在发生事故时收到改变路线的消息时,将调用上述代码。 mobility->getRoadId() 给出车道 ID 但 getRoadId()[0] 是什么意思?

据我所知,getRoadId()[0] 给出 1 或 :


注意:我使用的是 omnet 5.0、sumo-0.25.0 和 veins-4.4。 (TraCIDemo11p.cc)

对于一串字符,[0] returns索引0处的字符,即第一个字符。在这种情况下,它 returns 道路标识符的第一个字符。

在 SUMO 中,作为交叉路口一部分的路段(称为“内部边缘”)通常分配一个以 : 开头的名称,因此检查当前道路 ID 是否以 [=12] 开头=] 是一种快速技巧,可确保我们不会在车辆行驶在十字路口时试图改变其路线。