Discrete Event Control¶
This module contains the definition of a discrete event simulation control. It has the definition of the DiscreteEventControl, that allows control simulations.
Example
Creating a discrete-event control:
...
dynamic_system = some_discrete_event_dynamic_system
simulator = DiscreteEventSimulationEngine(dynamic_system, DefaultReport())
simulation_strategy = ThreadControl()
event_control = DiscreteEventControl(simulator, simulation_strategy)
Simulating a discrete-event simulation:
event_control.start(stop_time=10)
-
class
gsf.control.controls.discrete_event_control.DiscreteEventControl(simulator: DiscreteEventSimulationEngine, simulation_strategy: SimulationStrategy, event_bus: EventBus = None)¶ Bases:
gsf.control.core.base_control.BaseControlControl that executes the discrete-event simulation
Allows the control of discrete-event simulations,
-
_time¶ current clock time of the simulation.
- Type
Time
-
_execute(frequency: decimal.Decimal, wait_time: decimal.Decimal, stop_time: decimal.Decimal)¶ Executes the simulation loop number of seconds.
- Parameters
frequency (Time) – Frequency of the simulation computation.
wait_time (Time) – Delay execution for a given.
stop_time (Time) – Duration of the simulation.
-
_finish_simulation()¶ Finishes the simulation.
-
init()¶ Initializes the clock and the simulator.
-
next_step(time: Optional[decimal.Decimal] = None)¶ Executes the next step of the simulation
- Parameters
time (Time) – time of the next step. If it is None, takes the time of the next event.
-
pause()¶ Pauses the simulation
-
start()¶ Starts the simulation
- Parameters
start_input – Input of the dynamic system.
frequency (Time) – Frequency of the simulation computation.
stop_time (Time) – Time of the simulation
wait_time (Time) – Delay execution for a given number of seconds.
-
stop()¶ Stops the simulation
-
property
time¶ Current clock time of the simulation
-
wait(timeout: Optional[decimal.Decimal] = None)¶ Waits for the simulation process. :param timeout: time to wait. :type timeout: Time
-