modelverse.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from sccd.runtime.statecharts_core import Event
  2. import sccd.runtime.socket2event as socket2event
  3. import modelverse_SCCD
  4. controller = modelverse_SCCD.Controller()
  5. socket2event.boot_translation_service(controller)
  6. ID = 0
  7. def run_controller():
  8. try:
  9. controller.start()
  10. finally:
  11. controller.stop()
  12. if __name__ == "__main__":
  13. import threading
  14. thrd = threading.Thread(target=run_controller)
  15. thrd.daemon = True
  16. thrd.start()
  17. responses = controller.addOutputListener("action_out")
  18. controller.addOutputListener("ready").fetch(-1)
  19. def _next_ID():
  20. global ID
  21. ID += 1
  22. return ID
  23. def INPUT(action, context, parameters):
  24. controller.addInput(Event("action", "action_in", [action, _next_ID(), context, parameters]))
  25. def OUTPUT():
  26. return responses.fetch(-1)
  27. def init(address_param="127.0.0.1:8001", timeout=20.0):
  28. INPUT("init", None, [address_param, timeout])
  29. return OUTPUT()
  30. def login(username, password):
  31. INPUT("login", None, [username, password])
  32. return OUTPUT()
  33. def model_list(location):
  34. INPUT("model_list", None, [location])
  35. return OUTPUT()
  36. init()
  37. login("admin", "admin")
  38. model_list("")