policeman.py 715 B

123456789101112131415161718192021222324252627
  1. from pypdevs.DEVS import *
  2. class Policeman(AtomicDEVS):
  3. def __init__(self):
  4. AtomicDEVS.__init__(self, "policeman")
  5. self.out = self.addOutPort("output")
  6. self.state = "idle"
  7. self.elapsed = 0.0
  8. def intTransition(self):
  9. if self.state == "idle":
  10. return "working"
  11. elif self.state == "working":
  12. return "idle"
  13. def timeAdvance(self):
  14. if self.state == "idle":
  15. return 300
  16. elif self.state == "working":
  17. return 3600
  18. def outputFnc(self):
  19. if self.state == "idle":
  20. return {self.out: "go_to_work"}
  21. elif self.state == "working":
  22. return {self.out: "take_break"}