policeman.py 559 B

12345678910111213141516171819202122232425
  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. def intTransition(self):
  8. if self.state == "idle":
  9. return "working"
  10. elif self.state == "working":
  11. return "idle"
  12. def timeAdvance(self):
  13. if self.state == "idle":
  14. return 20
  15. elif self.state == "working":
  16. return 360
  17. def outputFnc(self):
  18. if self.state == "idle":
  19. return {self.out: ["manual"]}
  20. elif self.state == "working":
  21. return {self.out: ["auto"]}