Как получить идентификатор маршрута / идентификатор потока транспортного средства в венах?

Модуль вен ONET ++ имеет функцию getRoadId() это возвращает текущий "идентификатор дороги" транспортных средств, но как я могу иметь "идентификатор маршрута" или "идентификатор потока" транспортного средства.

4 ответа

Хорошо, я прошу прощения за этот вопрос, на самом деле я раньше использовал veins-3.0. В венах-3.0 такой функции не было.

Сегодня я мигрировал в вены-4a2. Здесь это легко найти, используя traciVehicle->getRouteId(), Большое спасибо сэру. Кристоф Зоммер за это обновление.

В настоящее время я использую Veins 2.0-rc1, даже если такая функция не реализована, вы можете легко реализовать ее, создав новую функцию, выполняющую работу в классе TraCIScenarioManager.

Чтобы сделать это, вы должны проверить функции, реализованные в этом классе, наряду с хорошим чтением / пониманием модуля TraCI Python, уже документированного в SUMO.

Если кто-то хочет использовать его в более старой версии вен, можно добавить его вручную следующим образом:

В 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);
}

Этот метод получает список с маршрутом автомобиля:

      traciVehicle->getPlannedRoadIds();
Другие вопросы по тегам