Source code for tango_simlib.main

#!/usr/bin/env python
#########################################################################################
# Copyright 2017 SKA South Africa (http://ska.ac.za/)                                   #
#                                                                                       #
# BSD license - see LICENSE.txt for details                                             #
#########################################################################################
from __future__ import absolute_import, division, print_function
from future import standard_library

standard_library.install_aliases()  # noqa: E402

import logging
import sys
import threading

from tango.server import server_run
from tango_simlib.sim_test_interface import TangoTestDeviceServerBase


[docs]def simulator_main(sim_class, sim_control_class=TangoTestDeviceServerBase): """Main function for a simulator with class sim_class. sim_class is a tango.server.Device subclass. """ run_ipython = "--ipython" in sys.argv if run_ipython: import IPython sys.argv.remove("--ipython") def start_ipython(sim_class): IPython.embed() t = threading.Thread(target=start_ipython, args=(sim_class,)) t.setDaemon(True) t.start() logging.basicConfig( format="%(asctime)s - %(name)s - %(levelname)s - %(module)s - " "%(pathname)s : %(lineno)d - %(message)s", level=logging.INFO, ) classes = [sim_class] if sim_control_class: classes.append(sim_control_class) server_run(classes)