omnet++ 静脉模块具有getRoadId()
返回车辆当前“道路 ID”的功能,但我如何才能获得车辆的“路线 ID”或“流程 ID”。
问问题
588 次
3 回答
3
好的,我很抱歉这个问题,实际上我以前使用过静脉 3.0。在vens-3.0 中没有这样的功能。
今天我迁移到了venes-4a2。在这里可以很容易地使用traciVehicle->getRouteId()
. 非常感谢先生。Christoph Sommer 为本次更新。
于 2016-01-16T09:03:14.803 回答
0
我目前使用的是 Veins 2.0-rc1,即使没有实现这样的功能,您也可以通过在TraCIScenarioManager类下创建一个新功能来轻松实现它。
为了做到这一点,您必须检查在此类下实现的功能,以及对 SUMO 下已记录的 TraCI Python 模块的良好阅读/理解。
于 2016-01-22T10:34:15.457 回答
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);
}
于 2017-03-14T00:57:07.960 回答