omnet ++ veins模块有一个函数getRoadId()
,它返回车辆的当前“道路ID”,但我怎样才能拥有车辆的“route id”或“flow id”。
答案 0 :(得分:3)
好的,我很抱歉这个问题,实际上我之前使用的是veins-3.0。在静脉-3.0中没有这样的功能。
今天我已经迁移到静脉-4a2。在这里,可以使用traciVehicle->getRouteId()
轻松找到它。非常感谢Sir先生。 Christoph Sommer的更新。
答案 1 :(得分:0)
我目前正在使用Veins 2.0-rc1,即使没有实现这样的功能,您也可以通过创建一个在 TraCIScenarioManager 类下完成工作的新功能轻松实现它。
为了做到这一点,你必须检查在这个类下实现的函数,以及对已在SUMO下记录的TraCI Python模块的良好阅读/理解。
答案 2 :(得分:0)
如果有人想在较旧版本的静脉中使用它,可以手动添加它:
在 TraCICommandInterface.h 中写下std::string getRoadId();
定义:
// Vehicle methods
bool addVehicle(std::string vehicleId, std::string vehicleTypeId, std::string routeId, simtime_t emitTime_st = -DEPART_NOW, double emitPosition = -DEPART_POS_BASE, double emitSpeed = -DEPART_SPEED_MAX, int8_t emitLane = -DEPART_LANE_BEST_FREE);
class Vehicle {
public:
Vehicle(TraCICommandInterface* traci, std::string nodeId) : traci(traci), nodeId(nodeId) {
connection = &traci->connection;
}
...
std::string getRoadId(); //here is the definition
...
protected:
TraCICommandInterface* traci;
TraCIConnection* connection;
std::string nodeId;
};
Vehicle vehicle(std::string nodeId) {
return Vehicle(this, nodeId);
}
在 TraCICommandInterface.cc 中写下std::string getRoadId();
声明:
std::string TraCICommandInterface::Vehicle::getRoadId() {
return traci->genericGetString(CMD_GET_VEHICLE_VARIABLE, nodeId, VAR_ROAD_ID, RESPONSE_GET_VEHICLE_VARIABLE);
}