IRESTE/Flow.py
2022-05-13 00:19:32 +02:00

42 lines
1.3 KiB
Python

from Car import Car
import copy
from random import randint
class Flow:
def __init__(self,ID,route,start,vph,randomVal, burstInterval, burstTime, dynSpeed, IA,parentMap,parentController):
self.route = route
self.id = ID
self.startTime = start
self.vph = float(vph)
self.randomVal = int(randomVal)
self.adjVPH = self.vph + randint(0,self.randomVal)
self.carModel = Car("model",self.route,start,dynSpeed,IA,parentMap,parentController,None)
self.carsSpawned = 0
self.priority = 0
self.burstInterval = float(burstInterval)
self.burstTime = float(burstTime)
self.cc = parentController
def prepareRoute(self):
self.carModel.prepareRoute()
def shouldSpawn(self, t):
f = self.carsSpawned / (t/3600)
return f < self.adjVPH and t%self.burstInterval < self.burstTime
def spawnCar(self):
newCar = copy.copy(self.carModel)
newCar.id = self.id + str(self.carsSpawned)
self.carsSpawned += 1
self.adjVPH = self.vph + randint(0,self.randomVal)
self.priority = 0
return newCar
def addCar2Counter(self):
self.carsSpawned += 1
def backlog(self, t):
carSpawnedTh = self.adjVPH * (t/3600)
return carSpawnedTh - self.carsSpawned