Exemple #1
0
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
Exemple #2
0
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))
Exemple #3
0
    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']))
Exemple #5
0
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()
Exemple #6
0
    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)