| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package benchmarks;
- import xdevs.core.modeling.Atomic;
- import xdevs.core.modeling.Port;
- public class Generator extends Atomic {
- public Port<int> oOut = new Port<>("o_out");
- private final double period;
- private int cycles;
- private final int output;
- public Generator(String name, double period, int cycles, int output) {
- super(name);
- super.addOutPort(oOut);
- this.period = period;
- this.cycles = cycles;
- this.output = output;
- }
- @Override
- public void initialize() {
- if (cycles > 0) {
- this.holdIn(cycles, period);
- } else {
- this.passivate();
- }
- }
- @Override
- public void deltint() {
- cycles--;
- if (cycles > 0) {
- this.holdIn(cycles, period);
- } else {
- this.passivate();
- }
- }
- @Override
- public void lambda() {
- if (cycles > 0) {
- oOut.addValue(output);
- }
- }
- @Override
- public void deltext(double e) {
- super.passivate();
- }
- }
|