Source code for pydsol.model.entities

""" """
"""
Created on: 22-7-2021 10:22

@author: IvS
"""
import itertools
from pydsol.model.basic_logger import get_module_logger

logger = get_module_logger(__name__)

__all__ = ["Entity", "Vehicle"]


[docs]class Entity(object): """This class defines a basic entity for a discrete event simulation model.""" id_iter = itertools.count(1) def __init__(self, simulator, t, speed=1.4, **kwargs): """ Parameters ---------- simulator: Simulator object simulator of the model. speed: speed of the entity. Default is 1.4 m/s. kwargs: kwargs are the keyword arguments that are used to expand the entity class. * source_entity: object source of which the entity should exit after creation. If keyword is not existing, the entity has no source to exit from. """ self.simulator = simulator self.time_creations = t self.id = next(self.id_iter) self.name = "{0} {1}".format(self.__class__.__name__, str(self.id)) self.speed = speed self.kwargs = kwargs
[docs]class Vehicle(Entity): """This class defines a vehicle in a discrete event simulation model, and is a subclass of Entity. A vehicle is an entity of which other entities can be transported. The entities on the vehicle are tracked by a list.""" def __init__(self, simulator, speed=10, **kwargs): """ Parameters ---------- simulator: Simulator object simulator of the model. speed: speed of the vehicle. kwargs: kwargs are the keyword arguments that are used to expand the vehicle class. """ super().__init__(simulator, t=simulator.simulator_time, speed=speed, **kwargs) self.entities_on_vehicle = []