Created
September 12, 2019 08:53
-
-
Save priyanksonis/49deccc904a116443b3217697bfdc0e1 to your computer and use it in GitHub Desktop.
Give commands to one simulation in SUMO from two different clients
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
import optparse | |
import time | |
import threading | |
if 'SUMO_HOME' in os.environ: | |
tools = os.path.join(os.environ['SUMO_HOME'], 'tools') | |
sys.path.append(tools) | |
else: | |
sys.exit("please declare environment variable 'SUMO_HOME'") | |
from sumolib import checkBinary # Checks for the binary in environ vars | |
import traci | |
import sumolib | |
from sumolib.miscutils import getFreeSocketPort | |
port = sumolib.miscutils.getFreeSocketPort() | |
MODEL_NAME = 'ATCS_MODEL' | |
AGGREGATE_STATS_EVERY = 5 | |
epsilon = 1 | |
class ATCS: | |
def __init__(self): | |
pass | |
def get_options(self): | |
optParser = optparse.OptionParser() | |
optParser.add_option("--nogui", action="store_true", | |
default=False, help="run the commandline version of sumo") | |
options, args = optParser.parse_args() | |
return options | |
if __name__ == "__main__": | |
env = ATCS() | |
options = env.get_options() | |
# check binary | |
if options.nogui: | |
sumoBinary = checkBinary('sumo') | |
else: | |
sumoBinary = checkBinary('sumo-gui') | |
PORT = port | |
PORT = int(sys.argv[1]) | |
traci.start([sumoBinary, "-c", "atcs2.sumocfg", '--start', "--num-clients", "2"], port=PORT) | |
#traci.start([sumoBinary, "-c", "atcs2.sumocfg", '--start', "--num-clients", "2"], port = PORT) | |
traci.setOrder(1) # number can be anything | |
while traci.simulation.getMinExpectedNumber() > 0: | |
traci.simulationStep() | |
print("In thread 1") | |
# more traci commands | |
traci.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
import optparse | |
import time | |
import threading | |
if 'SUMO_HOME' in os.environ: | |
tools = os.path.join(os.environ['SUMO_HOME'], 'tools') | |
sys.path.append(tools) | |
else: | |
sys.exit("please declare environment variable 'SUMO_HOME'") | |
from sumolib import checkBinary # Checks for the binary in environ vars | |
import traci | |
import sumolib | |
from sumolib.miscutils import getFreeSocketPort | |
port = sumolib.miscutils.getFreeSocketPort() | |
MODEL_NAME = 'ATCS_MODEL' | |
AGGREGATE_STATS_EVERY = 5 | |
epsilon = 1 | |
class ATCS: | |
def __init__(self): | |
pass | |
def get_options(self): | |
optParser = optparse.OptionParser() | |
optParser.add_option("--nogui", action="store_true", | |
default=False, help="run the commandline version of sumo") | |
options, args = optParser.parse_args() | |
return options | |
if __name__ == "__main__": | |
env = ATCS() | |
options = env.get_options() | |
# check binary | |
if options.nogui: | |
sumoBinary = checkBinary('sumo') | |
else: | |
sumoBinary = checkBinary('sumo-gui') | |
PORT = 55863 | |
PORT = int(sys.argv[1]) | |
# traci.start(["sumo", "-c", "atcs2.sumocfg", "--num-clients", "2"], port=PORT) | |
traci.init(PORT) | |
traci.setOrder(2) # number can be anything as long as each client gets its own number | |
while traci.simulation.getMinExpectedNumber() > 0: | |
traci.simulationStep() | |
print("In thread 2") | |
# more traci commands | |
traci.close() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Give commands to one simulation in SUMO from two different clients.