modelverse.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. response = responses.fetch(-1)
  27. return response.parameters[1]
  28. def init(address_param="127.0.0.1:8001", timeout=20.0):
  29. INPUT("init", None, [address_param, timeout])
  30. return OUTPUT()
  31. def login(username, password):
  32. INPUT("login", None, [username, password])
  33. return OUTPUT()
  34. def model_list(location):
  35. INPUT("model_list", None, [location])
  36. return OUTPUT()
  37. init()
  38. login("admin", "admin")
  39. print(model_list(""))