generator.py 619 B

1234567891011121314151617181920212223
  1. from pypdevs.DEVS import AtomicDEVS
  2. from pypdevs.infinity import INFINITY
  3. class Generator(AtomicDEVS):
  4. def __init__(self, name, output=1, period=1, cycles=1):
  5. super(Generator, self).__init__(name=name)
  6. self.output = output
  7. self.period = period
  8. self.state = 1
  9. self.o_out = self.addOutPort("o_out")
  10. def intTransition(self):
  11. return self.state - 1
  12. def timeAdvance(self):
  13. return self.period if self.state > 0 else INFINITY
  14. def outputFnc(self):
  15. if self.state > 0:
  16. return {self.o_out: list(range(self.output))}
  17. return {}