I'm coming from a SystemC world and I am trying to code something simple in Python. I wonder if Python has something similar to peq_with_get() (from SystemC) which is basically a queue that preserves all the triggers made to an event. I developed the following code to test it but it doesn't seem to be working. Wondering if you guys can guide me through to know wheter simpy has event queues or not.
import simpy
SIM_DURATION = 100
class SomeClass(object):
def __init__(self, env):
self.env = env
self.event_trig = self.env.event()
self.event_recvd = self.env.event()
simpy.events.Process( self.env, self._submit_loop() )
simpy.events.Process( self.env, self._complete_loop() )
def _submit_loop(self):
while True:
print('Waiting to Receive the Trigger')
yield self.event_trig
print('Event Received at Time %d' % env.now )
self.event_recvd.succeed()
def _complete_loop(self):
while True:
print('Trigger at time %d' % (env.now + 5) )
self.event_trig = self.env.timeout(5)
print('Trigger at time %d' % (env.now + 6) )
self.event_trig = self.env.timeout(6)
print('Trigger at time %d' % (env.now + 7) )
self.event_trig = self.env.timeout(7)
yield self.event_recvd
print('Current Time is %d. Wait for 10' % env.now)
yield self.env.timeout(10)
print('Start Sim')
env = simpy.Environment()
someCls = SomeClass( env )
env.run()