Generator.java 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package benchmarks;
  2. import xdevs.core.modeling.Atomic;
  3. import xdevs.core.modeling.Port;
  4. public class Generator extends Atomic {
  5. public Port<int> oOut = new Port<>("o_out");
  6. private final double period;
  7. private int cycles;
  8. private final int output;
  9. public Generator(String name, double period, int cycles, int output) {
  10. super(name);
  11. super.addOutPort(oOut);
  12. this.period = period;
  13. this.cycles = cycles;
  14. this.output = output;
  15. }
  16. @Override
  17. public void initialize() {
  18. if (cycles > 0) {
  19. this.holdIn(cycles, period);
  20. } else {
  21. this.passivate();
  22. }
  23. }
  24. @Override
  25. public void deltint() {
  26. cycles--;
  27. if (cycles > 0) {
  28. this.holdIn(cycles, period);
  29. } else {
  30. this.passivate();
  31. }
  32. }
  33. @Override
  34. public void lambda() {
  35. if (cycles > 0) {
  36. oOut.addValue(output);
  37. }
  38. }
  39. @Override
  40. public void deltext(double e) {
  41. super.passivate();
  42. }
  43. }