from threading import Thread from pyqtgraph.Qt import QtGui from logger import setup_global_logger import ports import command_line_parser from visualizer import DataListener from visualizer import Plotter setup_global_logger(level=command_line_parser.get_log_level()) data_listener = DataListener(host=command_line_parser.get_host(), port=ports.result_stream) data_listener_thread = Thread(target=data_listener.run) data_listener_thread.daemon = True plotter = Plotter(data_listener) data_listener.clear.connect(plotter.clear) data_listener.new_data.connect(plotter.update) data_listener_thread.start() ## Start Qt event loop unless running in interactive mode or using pyside. if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()
import time import argparse from logger import setup_global_logger import ports from parameter_control_server import ParameterControlServer from streamer import create_BraggEventGenerator from streamer import start_streamer_daemon_threads parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("-i", "--instrument-definition", type=str, default='data/POWDIFF_Definition.xml', help="Mantid instrument definition file.") parser.add_argument("-u", "--unit-cell", type=str, default='5.431 5.431 5.431', help="Mantid instrument definition file.") parser.add_argument("-s", "--space-group", type=str, default='F d -3 m', help="") parser.add_argument("-a", "--atoms", type=str, default='Si 0 0 0 1.0 0.01', help="") parser.add_argument("-[", "--min-plane-distance", type=float, default=0.5, help="") parser.add_argument("-]", "--max-plane-distance", type=float, default=4.0, help="") parser.add_argument("-l", "--log", type=str, default='info', help="Set the log level. Allowed values are 'critical', 'error', 'warning', 'info', and 'debug'.") args = parser.parse_args() setup_global_logger(level=args.log) base_generator = create_BraggEventGenerator(args.instrument_definition, (args.unit_cell, args.space_group, args.atoms), args.min_plane_distance, args.max_plane_distance) parameter_controller = ParameterControlServer(port=ports.streamer_control) start_streamer_daemon_threads(base_generator, parameter_controller) while threading.active_count() > 0: time.sleep(0.1)
import threading import time import argparse import numpy from mpi4py import MPI parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("-l", "--log", type=str, default='info', help="Set the log level. Allowed values are 'critical', 'error', 'warning', 'info', and 'debug'.") args = parser.parse_args() rank = MPI.COMM_WORLD.Get_rank() event_queue_port = 11000 + rank setup_global_logger(level=args.log, rank=rank) event_queue_in = ZMQQueueClient(port=event_queue_port) event_queue_in_thread = threading.Thread(target=event_queue_in.run) event_queue_in_thread.start() reducer = BackendMantidReducer(event_queue_in) reducer_thread = threading.Thread(target=reducer.run) reducer_thread.start() if MPI.COMM_WORLD.Get_rank() == 0: reducer_controller = ParameterControlServer(controllees=[reducer], port=ports.rebin_control) reducer_controller_thread = threading.Thread(target=reducer_controller.run) reducer_controller_thread.start()