Clock Processes
This is the smallest useful Cimba model: a process that periodically wakes up.
import cimba
def ticker(ticks):
while True:
cimba.hold(1.0)
ticks.append(cimba.time())
def run(stop_time=3.5, seed=12):
ticks = []
with cimba.Simulation(seed=seed) as sim:
cimba.Process("Ticker", ticker, ticks).start()
sim.stop_at(stop_time)
sim.execute()
return ticks
print(run())
The process wakes at simulated times 1.0, 2.0, and 3.0. The stop event at 3.5 clears the future wakeup scheduled for 4.0.