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))
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
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) )