def doStep(): setting.step += 1 if setting.verbose: print "step", setting.step moveNodes = cmdSimulationStep(setting.step) for vehicleID, edge, pos in moveNodes: _checkInitialPositions(vehicleID, edge, pos) vehicle = vehicleStatus[vehicleID] if edge == vehicle.target and not vehicle.parking: if edge.startswith("footmain"): vehicle.parking = True target = "footmainout" if edge == "footmainout": row = random.randrange(0, DOUBLE_ROWS) target = "footmain%sto%s" % (row, row + 1) statistics.personArrived(vehicleID, edge, target, setting.step) setting.manager.personArrived(vehicleID, edge, target) if edge.startswith("cyber"): if vehicle.delay: vehicle.delay -= 1 elif setting.breakstep and setting.step >= setting.breakstep and edge != "cyberin": if setting.verbose: print "broken", vehicleID, edge setting.breakstep = None setting.manager.cyberCarBroken(vehicleID, edge) vehicle.delay = BREAK_DELAY else: if setting.verbose: print "arrived", vehicleID, edge vehicle.parking = True setting.manager.cyberCarArrived(vehicleID, edge) setting.manager.setNewTargets()
def doStep(): setting.step += 1 if setting.verbose: print "step", setting.step moveNodes = cmdSimulationStep(setting.step) for vehicleID, edge, pos in moveNodes: _checkInitialPositions(vehicleID, edge, pos) vehicle = vehicleStatus[vehicleID] if edge == vehicle.target and not vehicle.parking: if edge.startswith("footmain"): vehicle.parking = True target = "footmainout" if edge == "footmainout": row = random.randrange(0, DOUBLE_ROWS) target = "footmain%sto%s" % (row, row+1) statistics.personArrived(vehicleID, edge, target, setting.step) setting.manager.personArrived(vehicleID, edge, target) if edge.startswith("cyber"): if vehicle.delay: vehicle.delay -= 1 elif setting.breakstep and setting.step >= setting.breakstep and edge != "cyberin": if setting.verbose: print "broken", vehicleID, edge setting.breakstep = None setting.manager.cyberCarBroken(vehicleID, edge) vehicle.delay = BREAK_DELAY else: if setting.verbose: print "arrived", vehicleID, edge vehicle.parking = True setting.manager.cyberCarArrived(vehicleID, edge) setting.manager.setNewTargets()
def doStep(): setting.step += 1 if setting.verbose: print "step", setting.step traci.simulationStep() moveNodes = [] for veh, subs in traci.vehicle.getSubscriptionResults().iteritems(): moveNodes.append( (veh, subs[tc.VAR_ROAD_ID], subs[tc.VAR_LANEPOSITION])) departed = traci.simulation.getSubscriptionResults()[ tc.VAR_DEPARTED_VEHICLES_IDS] for v in departed: traci.vehicle.subscribe(v) subs = traci.vehicle.getSubscriptionResults(v) moveNodes.append((v, subs[tc.VAR_ROAD_ID], subs[tc.VAR_LANEPOSITION])) for vehicleID, edge, pos in moveNodes: _checkInitialPositions(vehicleID, edge, pos) vehicle = vehicleStatus[vehicleID] if edge == vehicle.target and not vehicle.parking: if edge.startswith("footmain"): vehicle.parking = True target = "footmainout" if edge == "footmainout": row = random.randrange(0, DOUBLE_ROWS) target = "footmain%sto%s" % (row, row + 1) statistics.personArrived(vehicleID, edge, target, setting.step) setting.manager.personArrived(vehicleID, edge, target) if edge.startswith("cyber"): if vehicle.delay: vehicle.delay -= 1 elif setting.breakstep and setting.step >= setting.breakstep and edge != "cyberin": if setting.verbose: print "broken", vehicleID, edge setting.breakstep = None setting.manager.cyberCarBroken(vehicleID, edge) vehicle.delay = BREAK_DELAY else: if setting.verbose: print "arrived", vehicleID, edge vehicle.parking = True setting.manager.cyberCarArrived(vehicleID, edge) setting.manager.setNewTargets()
def doStep(): setting.step += 1 if setting.verbose: print "step", setting.step traci.simulationStep() moveNodes = [] for veh, subs in traci.vehicle.getSubscriptionResults().iteritems(): moveNodes.append( (veh, subs[tc.VAR_ROAD_ID], subs[tc.VAR_LANEPOSITION])) departed = traci.simulation.getSubscriptionResults( )[tc.VAR_DEPARTED_VEHICLES_IDS] for v in departed: traci.vehicle.subscribe(v) subs = traci.vehicle.getSubscriptionResults(v) moveNodes.append((v, subs[tc.VAR_ROAD_ID], subs[tc.VAR_LANEPOSITION])) for vehicleID, edge, pos in moveNodes: _checkInitialPositions(vehicleID, edge, pos) vehicle = vehicleStatus[vehicleID] if edge == vehicle.target and not vehicle.parking: if edge.startswith("footmain"): vehicle.parking = True target = "footmainout" if edge == "footmainout": row = random.randrange(0, DOUBLE_ROWS) target = "footmain%sto%s" % (row, row + 1) statistics.personArrived(vehicleID, edge, target, setting.step) setting.manager.personArrived(vehicleID, edge, target) if edge.startswith("cyber"): if vehicle.delay: vehicle.delay -= 1 elif setting.breakstep and setting.step >= setting.breakstep and edge != "cyberin": if setting.verbose: print "broken", vehicleID, edge setting.breakstep = None setting.manager.cyberCarBroken(vehicleID, edge) vehicle.delay = BREAK_DELAY else: if setting.verbose: print "arrived", vehicleID, edge vehicle.parking = True setting.manager.cyberCarArrived(vehicleID, edge) setting.manager.setNewTargets()