Exemplo n.º 1
0
    def get_data(self):
        """ Returns a generator yielding DataContainer obtained from subscriber

            Returns:
                Generator
        """
        while True:
            message = self._subscriber.queue.get()
            parsed = ArrayMessage.deserialize(message)
            self._subscriber.queue.task_done()
            yield DataContainer.from_array(
                parsed.data, int(parsed.data.shape[0] / ArrayMessage.duration))
Exemplo n.º 2
0
    def run(self):
        """ Starts Thread

            Runs as long as new data is available. If `acquire_data` returns
            `None` thread is terminated
        """
        for sample in self.acquire_data():
            if sample is None:
                print 'No new data available - shutting down data source'
                if self._abort is not None:
                    self._abort.set()
                break
            message = ArrayMessage(sample)
            self._publisher.queue.put(message.serialize(self.samplingrate))

            if self._abort is not None:
                if self._abort.is_set():
                    self._cleanup()
                    logging.info('{} - Abort event set. Exiting...'.format(
                        currentThread().getName()
                        ))
                    break
Exemplo n.º 3
0
    def get_data(self):
        """ Returns a generator yielding DataContainer obtained from subscriber

            Returns:
                Generator
        """
        while True:
            message = self._subscriber.queue.get()
            parsed = ArrayMessage.deserialize(message)
            self._subscriber.queue.task_done()
            yield DataContainer.from_array(
                parsed.data,
                int(parsed.data.shape[0] / ArrayMessage.duration)
            )