[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [sumo-user] two clients, one SUMO connection (python - TraCI)
|
Please try the following minimal version. It only assumes that SUMO_HOME has been defined and 'sumo-gui' is on the path.
man, still not working. I did it as you said, nothing, still the same loading thing at starting server. I also did it in like two clean scripts.
maybe in my cfg?
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<traci_server>
<remote-port value="8813" />
<num-clients value="2" />
</traci_server>
<input>
<net-file value="XYZ.net.xml"/>
<additional-files value="XYZ_new_vehicles.xml, XYZ_rou.add.xml"/>
<gui-settings-file value="settings.xml"/>
<start value="true"/>
</input>
<time>
<begin>21600</begin>
<end>28800</end>
<step-length>0.01</step-length>
</time>
<processing>
<step-method.ballistic>true</step-method.ballistic>
</processing>
<report>
<no-warnings>true</no-warnings>
</report>
</configuration>
i don't know what to do more.
Thanks and greetings
Gesendet: Donnerstag, 20. Dezember 2018 um 16:18 Uhr
Von: "Benedikt Schott" <
benedikt.schott@xxxxxxxx>
An: "'Sumo project User discussions'" <
sumo-user@xxxxxxxxxxx>
Betreff: Re: [sumo-user] two clients, one SUMO connection (python - TraCI)
As far as I know traci.simulationStep calls simulationStep on your first connection created via traci.start, you need to also call conn2.simulationStep. Instead of calling traci.simulationStep you can get the its connection of the first client via traci.getConnection, see e.g.
traci.start(sumoCmd, port=8813, label="sim1")
conn1 = traci.getConnection("sim1")
conn1.setOrder(1)
The following snippets should work:
---------------
Client 1:
---------------
sumoBinary = "C:\\Projekte\\Sumo_Eclipse\\Releases\\sumo-win64-1.1.0\\sumo-1.1.0\\bin\\sumo-gui"
sumoCmd = [sumoBinary, "-c", cfg]
traci.start(sumoCmd, port=8813, label="sim1")
conn1 = traci.getConnection("sim1")
conn1.setOrder(1)
step = 0
while step < 1000:
conn1.simulationStep()
step += 1
conn1.close()
---------------
Client 2:
---------------
traci.init(port=8813, label="sim2")
conn2 = traci.getConnection("sim2")
conn2.setOrder(2)
step = 0
while step < 1000:
conn2.simulationStep()
step += 1
conn2.close()
okey, still not working, here are my to client-snippets:
# default port
PORT = 8813
client2 = Com()
class runner:
port = getFreeSocketPort()
# if getFreeSocketPort returns None, initialize with default value
if not port:
port = PORT
sumoBinary = "sumo-gui.exe"
# starting sumo
traci.start(cmd=[sumoBinary, "-c", "pathToConfig\\SUMO\\config.sumo.cfg", "--num-clients", "2"], port=8813)
# establishing client order
traci.setOrder(1)
# default port
PORT = 8813
class Com:
def traci_client2(self):
port = getFreeSocketPort()
# if getFreeSocketPort returns None, initialize with default value
if not port:
port = PORT
traci.init(port=8813, label="sim2")
conn2 = traci.getConnection("sim2")
conn2.setOrder(2)
while traci.simulation.getMinExpectedNumber() > 0:
traci.simulationStep()
so, as far as i understand, it stucks while it loads because sumo is waiting for client2?
Maybe you can see anything in my code.
Gesendet: Donnerstag, 20. Dezember 2018 um 15:13 Uhr
Von: "Benedikt Schott" <benedikt.schott@xxxxxxxx>
An: "'Sumo project User discussions'" <sumo-user@xxxxxxxxxxx>
Betreff: Re: [sumo-user] two clients, one SUMO connection (python - TraCI)
When the sumo gui has been started, it is waiting for the second client to connect. Note that you have to call setOrder for all clients and to call simulationStep for each client to proceed with the simulation
e.g. for the second client:
traci.init(port=xxxx, label="sim2")
conn2 = traci.getConnection("sim2")
conn2.setOrder(2)
step = 0
while step < 1000:
conn2.simulationStep()
step += 1
conn2.close()
thanks for the information Jakob!
So I implemented it, but when I start my runner script, it opens my sumo-gui as usually, but it's only displaying "starting server on port xxxx" and nothing happens, just loading. When I'm changing the --num-clients in the traci.start to "1" it starts normally.
Gesendet: Donnerstag, 20. Dezember 2018 um 11:31 Uhr
Von: "Jakob Erdmann" <namdre.sumo@xxxxxxxxx>
An: "Sumo project User discussions" <sumo-user@xxxxxxxxxxx>
Betreff: Re: [sumo-user] two clients, one SUMO connection (python - TraCI)
so i'm new to SUMO and want to connect two different clients (both python scripts, Interface: TraCI) to the same SUMO connection.
How can I do that exactly? I read about the simulationSteps from the post yesterday, but I can't manage to implement it.
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________ sumo-user mailing list sumo-user@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________ sumo-user mailing list sumo-user@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________ sumo-user mailing list
sumo-user@xxxxxxxxxxx To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user
import os,sys
sys.path.append(os.environ['SUMO_HOME'] + '/tools')
import traci
PORT = 9000
traci.init(PORT)
traci.setOrder(2)
for i in range(10):
traci.simulationStep()
traci.close()
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on Thu 20 Dec 2018 06:46:10 PM CET by Eclipse SUMO netedit Version v1_0_1+1015-8e01b2d
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/netconvertConfiguration.xsd">
<input>
<new value="true"/>
</input>
</configuration>
-->
<net version="1.1" junctionCornerDetail="5" limitTurnSpeed="5.50" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/net_file.xsd">
<location netOffset="1.92,-47.71" convBoundary="0.00,0.00,84.51,0.00" origBoundary="10000000000.00,10000000000.00,-10000000000.00,-10000000000.00" projParameter="!"/>
<edge id="gneE0" from="gneJ0" to="gneJ1" priority="-1">
<lane id="gneE0_0" index="0" speed="13.89" length="84.51" shape="0.00,-1.60 84.51,-1.60"/>
</edge>
<junction id="gneJ0" type="dead_end" x="0.00" y="0.00" incLanes="" intLanes="" shape="0.00,0.00 0.00,-3.20"/>
<junction id="gneJ1" type="dead_end" x="84.51" y="0.00" incLanes="gneE0_0" intLanes="" shape="84.51,-3.20 84.51,0.00"/>
</net>
import os,sys
sys.path.append(os.environ['SUMO_HOME'] + '/tools')
import traci
PORT = 9000
traci.start(['sumo-gui', '-n', 'net.net.xml', '--num-clients', '2', '-S'], port=PORT)
traci.setOrder(1)
for i in range(10):
traci.simulationStep()
traci.close()