atomic_int.py 564 B

123456789101112131415161718192021222324252627282930
  1. ### Model
  2. from pypdevs.DEVS import *
  3. class TrafficLightAutonomous(AtomicDEVS):
  4. def __init__(self):
  5. AtomicDEVS.__init__(self, "Light")
  6. self.state = "green"
  7. def intTransition(self):
  8. state = self.state
  9. return {"red": "green",
  10. "yellow": "red",
  11. "green": "yellow"}[state]
  12. def timeAdvance(self):
  13. state = self.state
  14. return {"red": 60,
  15. "yellow": 3,
  16. "green": 57}[state]
  17. ### Experiment
  18. from pypdevs.simulator import Simulator
  19. model = TrafficLightAutonomous()
  20. sim = Simulator(model)
  21. sim.setVerbose()
  22. sim.setTerminationTime(500)
  23. sim.simulate()