| 12345678910111213141516171819202122232425262728293031323334353637 |
- from typing import Any
- from pypdevs.DEVS import AtomicDEVS
- from pypdevs.infinity import INFINITY
- class Generator(AtomicDEVS):
- def __init__(self, name, num_outputs=1, period=None):
- super(Generator, self).__init__(name=name)
- self.num_outputs = num_outputs
- self.period = period
- self.state = "active"
- self.o_out = self.addOutPort("o_out")
- def intTransition(self):
- if self.state == "active" and self.period is not None:
- self.state = "waiting"
- elif self.state == "waiting":
- self.state = "active"
- else:
- self.state = "passive"
- def timeAdvance(self):
- if self.state == "active":
- return 0
- elif self.state == "waiting":
- return self.period
- else:
- return INFINITY
- def outputFnc(self):
- return {self.o_out: list(range(self.num_outputs))}
- def extTransition(self, inputs):
- pass
|