Path: blob/main/tests/complex/traci/bugs/ticket4642/runner.py
169715 views
#!/usr/bin/env python1# -*- coding: utf-8 -*-2# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo3# Copyright (C) 2008-2025 German Aerospace Center (DLR) and others.4# This program and the accompanying materials are made available under the5# terms of the Eclipse Public License 2.0 which is available at6# https://www.eclipse.org/legal/epl-2.0/7# This Source Code may also be made available under the following Secondary8# Licenses when the conditions for such availability set forth in the Eclipse9# Public License 2.0 are satisfied: GNU General Public License, version 210# or later which is available at11# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html12# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later1314# @file runner.py15# @author Mirko Barthauer (Technische Universitaet Braunschweig)16# @date 2018-09-271718import os19import sys2021if "SUMO_HOME" in os.environ:22sys.path.append(os.path.join(os.environ["SUMO_HOME"], "tools"))2324import traci # noqa25import sumolib # noqa2627sumoBinary = sumolib.checkBinary('sumo')28traci.start([sumoBinary,29"-n", "input_net.net.xml", "-r",30"input_routes.rou.xml",31"--no-step-log",32])3334vehHasLeft = False35vehHasArrived = False36vehID = 'v1'37route = []38step = 039resultList = [("step", "currentEdge", "targetEdge", "distoToTargetEdge")]4041while not vehHasLeft:42if not vehHasArrived:43arrivedVehicles = traci.simulation.getDepartedIDList()44vehHasArrived = vehID in arrivedVehicles45route = traci.vehicle.getRoute(vehID)4647if vehHasArrived:48target = route[-1]49remainingDist = traci.vehicle.getDrivingDistance(vehID, target, 0.0)50currentEdge = traci.vehicle.getRoadID(vehID)51vehHasLeft = currentEdge == route[-1]52resultList.append((str(step), currentEdge, target, str(remainingDist)))53target = ":gneJ1_2"54remainingDist = traci.vehicle.getDrivingDistance(vehID, target, 0.0)55resultList.append((str(step), currentEdge, target, str(remainingDist)))56target = ":gneJ1_3"57remainingDist = traci.vehicle.getDrivingDistance(vehID, target, 0.0)58resultList.append((str(step), currentEdge, target, str(remainingDist)))59step += 160traci.simulationStep()61traci.close()6263# print distance to target edge of the vehicle's route64for line in resultList:65print("%s" % ";".join(line))666768