Good afternoon,
I have been trying to retrieve values via context subscription with no success. Here are some of the links I visited:
http://sumo.sourceforge.net/userdoc/TraCI.html
where there is this Code snippet:
for veh_id in traci.simulation.getDepartedIDList():
traci.vehicle.subscribe(veh_id, [traci.constants.VAR_POSITION])
positions = traci.vehicle.getSubscriptionResults()
This works perfectly and my simulation Exits cleanly.
Then I tried subscribe context, as decribed in
http://sumo.sourceforge.net/userdoc/TraCI/Interfacing_TraCI_from_Python.html
traci.junction.subscribeContext(junctionID, tc.CMD_GET_VEHICLE_VARIABLE, 42, [tc.VAR_SPEED, tc.VAR_WAITING_TIME])
print(traci.junction.getContextSubscriptionResults(junctionID))
while k == 0 or traci.simulation.getMinExpectedNumber() > 0:
…
k += 1
traci.simulationStep()
print(traci.junction.getContextSubscriptionResults(junctionID))
traci.close()
Junction subscription also works.
But what I am interested at is actually the vehicle context subscription, and this one does not work. I have tried this Code snippet:
while k == 0 or traci.simulation.getMinExpectedNumber() > 0:
…
for veh_id in traci.simulation.getDepartedIDList():
traci.vehicle.subscribeContext(str(veh_id),
tc.CMD_GET_VEHICLE_VARIABLE, 0.0, [tc.VAR_SPEED])
traci.vehicle.addSubscriptionFilterLanes([-1,0,1],
noOpposite=True, downstreamDist=100, upstreamDist=50)
print traci.vehicle.getContextSubscriptionResults(str(veh_id))
k += 1
traci.simulationStep()
traci.close()
I get the following error:
raceback (most recent call last):
File "C:/Users/gama_/LRZ Sync+Share/semester_3/Study_project/Interstate80/I80_runner.py", line 88, in <module>
traci.vehicle.addSubscriptionFilterLanes([-1,0,1], noOpposite=True, downstreamDist=100, upstreamDist=50)
TypeError: addSubscriptionFilterLanes() got an unexpected keyword argument 'noOpposite'
Then, if I just leave the lane Parameter, and delete from noOpposit on, like this:
for veh_id in traci.simulation.getDepartedIDList():
traci.vehicle.subscribeContext(str(veh_id), tc.CMD_GET_VEHICLE_VARIABLE, 100.0, [tc.VAR_SPEED])
traci.vehicle.addSubscriptionFilterLanes([-1,0,1])
print traci.vehicle.getContextSubscriptionResults(str(veh_id))
I can get some results, but they don’t seem to be filtered neither by neighbouring lanes, nor by the same lane the vehicle is at. And the Simulation also does not Exit cleanly. This is the error I get in this case:
Traceback (most recent call last):
File "C:/Users/gama_/LRZ Sync+Share/semester_3/Study_project/Interstate80/I80_runner.py", line 100, in <module>
traci.simulationStep()
File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\__init__.py", line 127, in simulationStep
responses = _connections[""].simulationStep(step)
File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\connection.py", line 323, in simulationStep
result = self._sendExact()
File "C:\Program Files (x86)\Eclipse\Sumo\tools\traci\connection.py", line 99, in _sendExact
raise FatalTraCIError("connection closed by SUMO")
traci.exceptions.FatalTraCIError: connection closed by SUMO
Process finished with exit code 1
Could anyone please help?
Thank you in Advance,
Thais
Gesendet von
Mail für Windows 10