[1] 我正在尝试为使用的车辆分配一条新路线,TraCE Command Interface::Vehicle::change Vehicle Route(const std::list<std::string>& edges)
但没有任何反应。
我正在获取当前路线和 ['6/7to6/6', '6/6to5/6', '5/6to4/6', '4/6to3/6', '3/6to3/7', '3 /7to3/8', '3/8to3/9', '3/9to2/9', '2/9to2/8'] 计算新并发送 ['6/7to6/6', '6/6to5/6 '、'5/6to4/6'、'4/6to3/6'、'3/6to2/6'、'2/6to2/7'、'2/7to2/8'、'2/8to3/8'、 '3/8to3/9'、'3/9to2/9'、'2/9to2/8']。
但changeVehicleRoute(edges)
返回 0,所以没有分配新路由。
下面是我的一段代码。有人能帮我吗?
更多问题,
[2] 如果我当前的路线是当前路线[a , b, c, d, e, f]
并且车辆是当前的c
,那么当我计算新路线时[a,b,c,H,I,f]
,我可以分配所有路线[a,b,c,H,I,f]
还是只分配其余路线[c,H,I,f]
?
[3] 如果我只放其余的,它会影响路线长度,距离,燃料......的SUMO统计?
rot.h
TraCIMobility* mobility;
TraCICommandInterface* traci;
TraCICommandInterface::Vehicle* traciVehicle;
...
rot.cc
initialize(int stage){
...
mobility = TraCIMobilityAccess().get(getParentModule());
assert(mobility);
traci = mobility->getCommandInterface();
traciVehicle = mobility->getVehicleCommandInterface();
...
}
...
reroute(std::list<std::string> rList){
bool rota;
rota = traciVehicle->changeVehicleRoute(rList);
std::cout << rota << findHost()->getFullName() << std::endl;
}