run.py 942 B

123456789101112131415161718192021222324252627282930313233343536
  1. from sccd.realtime.eventloop import *
  2. from sccd.realtime.tkinter import TkInterImplementation
  3. from sccd.cd.parser.xml import *
  4. import GUI
  5. import tkinter
  6. from tkinter.constants import NO
  7. import sys
  8. if __name__ == '__main__':
  9. if len(sys.argv) == 2:
  10. model_path = sys.argv[1]
  11. else:
  12. model_path = "models/model_03_orthogonal.xml"
  13. cd = load_cd(model_path)
  14. def send_event(event: str):
  15. eventloop.add_input_now(port="in", event_name=event)
  16. tk = tkinter.Tk()
  17. tk.withdraw()
  18. topLevel = tkinter.Toplevel(tk)
  19. topLevel.resizable(width=NO, height=NO)
  20. topLevel.title("Microwave oven simulator")
  21. gui = GUI.GUI(topLevel, send_event)
  22. def on_output(event):
  23. if event.port == "out":
  24. gui.handle_event(event)
  25. controller = Controller(cd, output_callback=on_output)
  26. eventloop = EventLoop(controller, TkInterImplementation(tk))
  27. eventloop.start()
  28. tk.mainloop()