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和venles-4.4。 (TraCIDemo11p.cc)
对于字符串,[0]
返回索引为0
的字符,即第一个字符。在这种情况下,它返回道路标识符的第一个字符。
[在SUMO中,通常将交叉路口的路段(称为“内部边缘”)分配以:
开头的名称,因此检查当前道路ID是否以:
开头是一种快速的技巧。确保我们没有在交叉路口行驶时试图改变其路线。