runner.py 900 B

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. import subprocess
  3. import importlib.util
  4. import re
  5. from sccd.runtime.DEVS_loop import DEVSSimulator
  6. import target as target
  7. from sccd.runtime.statecharts_core import Event
  8. import threading
  9. if __name__ == '__main__':
  10. controller = target.Controller()
  11. def raw_inputter():
  12. while 1:
  13. #if controller.simulated_time is not None and controller.simulated_time > 1:
  14. controller.addInput(Event(input(), "Input", []))
  15. input_thread = threading.Thread(target=raw_inputter)
  16. input_thread.daemon = True
  17. input_thread.start()
  18. output_listener = controller.addOutputListener(["Output"])
  19. def outputter():
  20. while 1:
  21. print(str(controller.simulated_time) + " " + str(output_listener.fetch(-1)))
  22. output_thread = threading.Thread(target=outputter)
  23. output_thread.daemon = True
  24. output_thread.start()
  25. controller.start()