Path: blob/main/tests/complex/traci/lane/internal/runner.py
169689 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 Michael Behrisch16# @author Daniel Krajzewicz17# @date 2011-03-041819from __future__ import print_function20from __future__ import absolute_import21import os22import sys2324if "SUMO_HOME" in os.environ:25sys.path.append(os.path.join(os.environ["SUMO_HOME"], "tools"))26import traci # noqa27import sumolib # noqa2829traci.start([sumolib.checkBinary('sumo'), "-n", "input_net3.net.xml",30"--no-step-log"] + sys.argv[1:])31for step in range(3):32print("step", step)33traci.simulationStep()34laneID = ":C_15_0"35print("examining", laneID)36print("length", traci.lane.getLength(laneID))37print("maxSpeed", traci.lane.getMaxSpeed(laneID))38print("width", traci.lane.getWidth(laneID))39print("allowed", traci.lane.getAllowed(laneID))40print("disallowed", traci.lane.getDisallowed(laneID))41print("linkNum", traci.lane.getLinkNumber(laneID))42if traci.isLibsumo() or traci.isLibtraci():43print("links", [link[:4] for link in traci.lane.getLinks(laneID)])44print("linksExtended", traci.lane.getLinks(laneID))45else:46print("links", traci.lane.getLinks(laneID, extended=False))47print("linksExtended", traci.lane.getLinks(laneID, extended=True))48print("shape", traci.lane.getShape(laneID))49print("edge", traci.lane.getEdgeID(laneID))50print("CO2", traci.lane.getCO2Emission(laneID))51print("CO", traci.lane.getCOEmission(laneID))52print("HC", traci.lane.getHCEmission(laneID))53print("PMx", traci.lane.getPMxEmission(laneID))54print("NOx", traci.lane.getNOxEmission(laneID))55print("Fuel", traci.lane.getFuelConsumption(laneID))56print("Noise", traci.lane.getNoiseEmission(laneID))57print("Elec", traci.lane.getElectricityConsumption(laneID))58print("meanSpeed", traci.lane.getLastStepMeanSpeed(laneID))59print("occupancy", traci.lane.getLastStepOccupancy(laneID))60print("lastLength", traci.lane.getLastStepLength(laneID))61print("traveltime", traci.lane.getTraveltime(laneID))62print("numVeh", traci.lane.getLastStepVehicleNumber(laneID))63print("haltVeh", traci.lane.getLastStepHaltingNumber(laneID))64print("vehIds", traci.lane.getLastStepVehicleIDs(laneID))65print("waiting time", traci.lane.getWaitingTime(laneID))6667traci.lane.setAllowed(laneID, ["taxi"])68print("after setAllowed", traci.lane.getAllowed(laneID), traci.lane.getDisallowed(laneID))69traci.lane.setDisallowed(laneID, ["bus"])70print("after setDisallowed", traci.lane.getAllowed(laneID), traci.lane.getDisallowed(laneID))71traci.lane.setMaxSpeed(laneID, 42.)72print("after setMaxSpeed", traci.lane.getMaxSpeed(laneID))73traci.lane.setLength(laneID, 123.)74print("after setLength", traci.lane.getLength(laneID))7576traci.lane.subscribe(laneID)77print(traci.lane.getSubscriptionResults(laneID))78for step in range(3, 6):79print("step", step)80print("pending", laneID, traci.lane.getPendingVehicles(laneID))81traci.simulationStep()82print(traci.lane.getSubscriptionResults(laneID))83traci.close()848586