[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[sumo-dev] Error with two or more switches of network with traci.load and .savestate
|
Dear all,
in my simulation I switch between two similar networks (with minor
differences due to a closd lane) using a python code sequence like this
if laneClosed.get() == 0:
# open lane
networkName = networkPriority
else:
# close lane
networkName = networkRipped
newTime = step + 1
stateFileName = 'autobahn.savestate' + str(newTime)
traci.simulation.saveState(stateFileName);
sumoArgs[1] = networkName
traci.load(sumoArgs + ['--load-state', stateFileName,
'--load-state.offset', str(newTime), '--start'])
I'm using also the --load-state.offset argument to have a continious time.
If I have traffic in my network (with departed) vehicles, then the
second switch creates a statefile with negativ departure times
In the first simulation step two vehicle are create at a time of 310
resp 312 sek.
simStep create dyn-truck80-0 0.0146 0.0147 310.0
simStep create dyn-truck80-1 0.0127 0.0147 312.0
At a time of 424 sek I do the first switch over, the savestate file shows
autobahn.savestate424: <vehicle id="dyn-truck80-0" type="truck80"
depart="310.00" route="A2EastWest" speedFactor="1.02" state="310000 2
7.20 0 422000" pos="1439.83" speed="21.87" posLat="0.00">
autobahn.savestate424- <device id="tripinfo_dyn-truck80-0"
state="-gneE0.0.0_0 0.00 22.22"/>
autobahn.savestate424: </vehicle>
autobahn.savestate424: <vehicle id="dyn-truck80-1" type="truck80"
depart="312.00" route="A2EastWest" speedFactor="0.85" state="312000 2
7.20 0 422000" pos="1396.20" speed="21.61" posLat="0.00">
autobahn.savestate424- <device id="tripinfo_dyn-truck80-1"
state="-gneE0.0.0_0 0.00 22.22"/>
autobahn.savestate424: </vehicle>
At the second switchover the savestate file looks like
autobahn.savestate462: <vehicle id="dyn-truck80-0" type="truck80"
depart="-114.00" route="A2EastWest" speedFactor="1.02" state="-114000 2
7.20 0 460000" pos="2273.75" speed="22.09" posLat="0.00">
autobahn.savestate462- <device id="tripinfo_dyn-truck80-0"
state="-gneE0.0.0_0 0.00 22.22"/>
autobahn.savestate462: </vehicle>
autobahn.savestate462: <vehicle id="dyn-truck80-1" type="truck80"
depart="-112.00" route="A2EastWest" speedFactor="0.85" state="-112000 2
7.20 0 460000" pos="2228.39" speed="22.10" posLat="0.00">
autobahn.savestate462- <device id="tripinfo_dyn-truck80-1"
state="-gneE0.0.0_0 0.00 22.22"/>
autobahn.savestate462: </vehicle>
-114 is 310 (original start time) - 424 (first switch over)
This is the code with regard to the departure time in MSVehicle.cpp:
5013-void
5014:MSVehicle::saveState(OutputDevice& out) {
...
5018: internals.push_back(toString(myDeparture));
--
5038-void
5039:MSVehicle::loadState(const SUMOSAXAttributes& attrs, const SUMOTime
offset) {
5040- if (!attrs.hasAttribute(SUMO_ATTR_POSITION)) {
--
5044- std::istringstream bis(attrs.getString(SUMO_ATTR_STATE));
5045: bis >> myDeparture;
...
5050: if (hasDeparted()) {
5051- myCurrEdge += routeOffset;
5052: myDeparture -= offset;
5053- }
Best regards
Harald
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature