experiment.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import sys
  2. import time
  3. sys.path.append("../src/")
  4. from python_runtime.statecharts_core import Event
  5. import sccd
  6. from model import TrafficSystem
  7. controller = sccd.Controller(TrafficSystem(name="MyTrafficSystem"))
  8. controller.start()
  9. reply_port = controller.addOutputListener('reply')
  10. """
  11. params = [{"termination_time": 10, "realtime_scale": 3.0}]
  12. controller.addInput(Event("realtime", "request", params))
  13. print(reply_port.fetch(-1))
  14. params = [{"termination_time": 20, "realtime_scale": 0.333}]
  15. controller.addInput(Event("realtime", "request", params))
  16. print(reply_port.fetch(-1))
  17. params = [{"termination_time": 50, "realtime_scale": 1.0}]
  18. controller.addInput(Event("simulate", "request", params))
  19. print(reply_port.fetch(-1))
  20. """
  21. params = [{"termination_time": 50}]
  22. controller.addInput(Event("big_step", "request", params))
  23. print(reply_port.fetch(-1))
  24. for _ in range(10):
  25. controller.addInput(Event("small_step", "request", params))
  26. #print(reply_port.fetch(-1))
  27. controller.addInput(Event("big_step", "request", params))
  28. print(reply_port.fetch(-1))
  29. params = [{"model": "MyTrafficSystem.trafficLight", "attribute": "colour", "value": "green"}]
  30. controller.addInput(Event("god_event", "request", params))
  31. print(reply_port.fetch(-1))
  32. params = [{"termination_time": 5000}]
  33. controller.addInput(Event("simulate", "request", params))
  34. print(reply_port.fetch(-1))
  35. controller.stop()