def main(): zeromq_context = zmq.Context() # get configuration name = str(config.get('main', 'name')) address = config.get('main', 'address') port = config.getint('main', 'port') address_sub = config.get('data', 'address-sub') port_sub = config.get('data', 'port-sub') queue = multiprocessing.Queue() proxy_in = worker_forwarders.ZeromqSub('ZeromqSub', queue, zeromq_context, address_sub, port_sub) proxy_in.start() thread = threading.Thread(target=background_thread, args=(queue,)) thread.setDaemon(True) try: thread.start() except KeyboardInterrupt: pass # start websockets try: socketio.run(app, host=address, port=int(port), debug=False) except KeyboardInterrupt: pass
def main(): global cmd_client global cmd_server zeromq_context = zmq.Context() # get configuration name = str(config.get('main', 'name')) address = config.get('main', 'address') port_pull = config.getint('main', 'port-pull') port_pub = config.get('main', 'port-pub') port_api = config.get('main', 'port-api') if not name: log.error('Name not specified in configuration file.') exit(1) name_api = '{name}-api'.format(name=name) # start command server cmd_server = cmd_interface.Server(zeromq_context, address, port_pull, port_pub) cmd_server.start() # start command client for api cmd_client = cmd_interface.Client(name_api, 'commander', zeromq_context, address, port_pull, port_pub) cmd_client.start() # start api app.run(host=address, port=int(port_api))
def __init__(self): # initiate collector dictionary self._collectors = dict() # set up udev observer self._udev_context = pyudev.Context() self._udev_monitor = pyudev.Monitor.from_netlink(self._udev_context) self._udev_monitor.filter_by('usb') self._udev_observer = pyudev.MonitorObserver( self._udev_monitor, callback=self.udev_handler, name='udev-observer') self._udev_observer.start() # prepare zeromq context self._zeromq_context = zmq.Context() # set up queues self._queue_in_processor = multiprocessing.Queue() self._queue_in_forwarder = multiprocessing.Queue() # set up processor self._processor = worker_processors.DummyProcessor( 'Processor', self._queue_in_processor, self._queue_in_forwarder) self._processor.start() # set up zeromq for data forwarding/access address_pub = config.get('data', 'address-pub') port_pub = config.get('data', 'port-pub') address_push = config.get('data', 'address-push') port_push = config.get('data', 'port-push') self._forwarder = worker_forwarders.ZeromqPubAndPush( 'ZeromqPubAndPush', self._queue_in_forwarder, self._zeromq_context, address_pub, port_pub, address_push, port_push) self._forwarder.start() # start some default collectors self._collectors['dummy-1'] = worker_collectors.DummyCollector( 'dummy-1', self._queue_in_processor) self._collectors['dummy-2'] = worker_collectors.DummyCollector( 'dummy-2', self._queue_in_processor) # check for already connected devices with udev for device in self._udev_context.list_devices(subsystem='usb'): self.udev_add_device(device) log.debug("DAQ manager started.")
def __init__(self, worker_id, queue_out): super(DummyCollector, self).__init__(worker_id, None, queue_out) self._exit_event = multiprocessing.Event() self._info['type'] = 'Dummy Collector' self._status['initialized'] = True self._info['host'] = config.get('main', 'name') log.info("{id}: Dummy collector added.".format(id=self._info['id']))
def main(): manager = DAQ() zeromq_context = zmq.Context() # get configuration name = config.get('main', 'name') address = config.get('cmd-server', 'address') port_in = config.getint('cmd-server', 'port-in') port_out = config.get('cmd-server', 'port-out') # create command client, add functions and start it cmd_client = cmd_interface.Client(name, 'follower', zeromq_context, address, port_in, port_out) cmd_client.add_command('status', manager.status) cmd_client.add_command('info', manager.info) cmd_client.add_command('start', manager.start) cmd_client.add_command('stop', manager.stop) cmd_client.start() cmd_client.join() # cleanup manager manager.cleanup()
def __init__(self): self._zeromq_context = zmq.Context() # set up queues = multiprocessing.Queue() self._queue = multiprocessing.Queue() # set up zeromq forwarder address_pull = config.get('data', 'address-pull') port_pull = config.get('data', 'port-pull') address_pub = config.get('data', 'address-pub') port_pub = config.get('data', 'port-pub') address_push = config.get('data', 'address-push') port_push = config.get('data', 'port-push') self._router_in = worker_forwarders.ZeromqPull( 'ZeromqPull', self._queue, self._zeromq_context, address_pull, port_pull) self._router_out = worker_forwarders.ZeromqPubAndPush( 'ZeromqPubAndPush', self._queue, self._zeromq_context, address_pub, port_pub, address_push, port_push)