def test_TriggerAccumulator(): app = pg.mkQApp() dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1. / sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata', dtype='float32') dev.initialize() trigger = AnalogTrigger() trigger.configure() trigger.input.connect(dev.output) trigger.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata') trigger.initialize() trigger.params['threshold'] = 1. trigger.params['debounce_mode'] = 'no-debounce' trigger.params['front'] = '+' trigger.params['debounce_time'] = 0.1 triggeraccumulator = TriggerAccumulator() triggeraccumulator.configure(max_stack_size=5) triggeraccumulator.inputs['signals'].connect(dev.output) triggeraccumulator.inputs['events'].connect(trigger.output) triggeraccumulator.initialize() triggeraccumulator.params['stack_size'] = 3 triggeraccumulator.params['left_sweep'] = -.2 triggeraccumulator.params['right_sweep'] = .5 #~ def on_new_chunk(total_trig): #~ print #~ print('total_trig', total_trig) #~ print('triggeraccumulator.stack', triggeraccumulator.stack) #~ print('triggeraccumulator.total_trig', triggeraccumulator.total_trig) #~ triggeraccumulator.new_chunk.connect(on_new_chunk) dev.start() trigger.start() triggeraccumulator.start() def terminate(): dev.stop() trigger.stop() triggeraccumulator.stop() app.quit() # start for a while timer = QtCore.QTimer(singleShot=True, interval=6000) timer.timeout.connect(terminate) timer.start() app.exec_() assert triggeraccumulator.total_trig == 6
def setup_nodes(): #fake analog stream dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1. / sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata', dtype='float32') dev.initialize() # trigger trigger = AnalogTrigger() trigger.configure() trigger.input.connect(dev.output) trigger.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata') trigger.initialize() trigger.params['threshold'] = 1. trigger.params['front'] = '+' return dev, trigger
def do_filtertest(engine): app = pg.mkQApp() dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1. / sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure(**stream_spec) dev.initialize() f1, f2 = 40., 60. coefficients = scipy.signal.iirfilter( 7, [f1 / sample_rate * 2, f2 / sample_rate * 2], btype='bandpass', ftype='butter', output='sos') filter = OverlapFiltfilt() filter.configure(coefficients=coefficients, engine=engine, chunksize=chunksize, overlapsize=overlapsize) filter.input.connect(dev.output) filter.output.configure(**stream_spec) filter.initialize() viewer = QOscilloscope() viewer.configure(with_user_dialog=True) viewer.input.connect(filter.output) viewer.initialize() viewer.show() viewer2 = QOscilloscope() viewer2.configure(with_user_dialog=True) viewer2.input.connect(dev.output) viewer2.initialize() viewer2.show() viewer2.start() viewer.start() filter.start() dev.start() def terminate(): dev.stop() filter.stop() viewer.stop() viewer2.stop() app.quit() # start for a while timer = QtCore.QTimer(singleShot=True, interval=3000) timer.timeout.connect(terminate) timer.start() app.exec_()
def do_filtertest(engine): stream_spec = dict(protocol='tcp', interface='127.0.0.1', transfermode='sharedmem', double=True, dtype = 'float32',buffer_size=2048*50, shape=(-1,nb_channel)) app = pg.mkQApp() dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1./sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure( **stream_spec) dev.initialize() f1, f2 = 40., 60. coefficients = scipy.signal.iirfilter(7, [f1/sample_rate*2, f2/sample_rate*2], btype = 'bandpass', ftype = 'butter', output = 'sos') filter = SosFilter() filter.configure(coefficients = coefficients, engine=engine, chunksize=chunksize) filter.input.connect(dev.output) filter.output.configure(**stream_spec) filter.initialize() viewer = QOscilloscope() viewer.configure(with_user_dialog=True) viewer.input.connect(filter.output) viewer.initialize() viewer.show() viewer2 = QOscilloscope() viewer2.configure(with_user_dialog=True) viewer2.input.connect(dev.output) viewer2.initialize() viewer2.show() viewer2.start() viewer.start() filter.start() dev.start() def terminate(): dev.stop() filter.stop() viewer.stop() viewer2.stop() app.quit() # start for a while timer = QtCore.QTimer(singleShot=True, interval=3000) timer.timeout.connect(terminate) timer.start() app.exec_()
def test_TriggerAccumulator(): app = pg.mkQApp() dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1./sample_rate, chunksize=chunksize, buffer=buffer, timeaxis=1,) dev.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='sharedarray', sharedarray_shape=(nb_channel, 2048*50), ring_buffer_method = 'double', timeaxis = 1, dtype = 'float32') dev.initialize() trigger = AnalogTrigger() trigger.configure() trigger.input.connect(dev.output) trigger.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata') trigger.initialize() trigger.params['threshold'] = 1. trigger.params['debounce_mode'] = 'no-debounce' trigger.params['front'] = '+' trigger.params['debounce_time'] = 0.1 triggeraccumulator = TriggerAccumulator() triggeraccumulator.configure(max_stack_size = 5) triggeraccumulator.inputs['signals'].connect(dev.output) triggeraccumulator.inputs['events'].connect(trigger.output) triggeraccumulator.initialize() triggeraccumulator.params['stack_size'] = 3 triggeraccumulator.params['left_sweep'] = -.2 triggeraccumulator.params['right_sweep'] = .5 #~ def on_new_chunk(total_trig): #~ print #~ print('total_trig', total_trig) #~ print('triggeraccumulator.stack', triggeraccumulator.stack) #~ print('triggeraccumulator.total_trig', triggeraccumulator.total_trig) #~ triggeraccumulator.new_chunk.connect(on_new_chunk) dev.start() trigger.start() triggeraccumulator.start() def terminate(): dev.stop() trigger.stop() triggeraccumulator.stop() app.quit() # start for a while timer = QtCore.QTimer(singleShot=True, interval=5000) timer.timeout.connect(terminate) timer.start() app.exec_() assert triggeraccumulator.total_trig==6
def do_filtertest(engine): app = pg.mkQApp() dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1./sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure(**stream_spec) dev.initialize() f1, f2 = 40., 60. coefficients = scipy.signal.iirfilter(7, [f1/sample_rate*2, f2/sample_rate*2], btype = 'bandpass', ftype = 'butter', output = 'sos') filter = OverlapFiltfilt() filter.configure(coefficients = coefficients, engine=engine, chunksize=chunksize, overlapsize=overlapsize) filter.input.connect(dev.output) filter.output.configure(**stream_spec) filter.initialize() viewer = QOscilloscope() viewer.configure(with_user_dialog=True) viewer.input.connect(filter.output) viewer.initialize() viewer.show() viewer2 = QOscilloscope() viewer2.configure(with_user_dialog=True) viewer2.input.connect(dev.output) viewer2.initialize() viewer2.show() viewer2.start() viewer.start() filter.start() dev.start() def terminate(): dev.stop() filter.stop() viewer.stop() viewer2.stop() app.quit() # start for a while timer = QtCore.QTimer(singleShot=True, interval=3000) timer.timeout.connect(terminate) timer.start() app.exec_()
def setup_nodes(): #fake analog stream dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1./sample_rate, chunksize=chunksize, buffer=buffer) dev.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata', dtype='float32') dev.initialize() # trigger trigger = AnalogTrigger() trigger.configure() trigger.input.connect(dev.output) trigger.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata') trigger.initialize() trigger.params['threshold'] = 1. trigger.params['front'] = '+' return dev, trigger
def setup_nodes(): #fake analog stream dev = NumpyDeviceBuffer() dev.configure(nb_channel=nb_channel, sample_interval=1./sample_rate, chunksize=chunksize, buffer=buffer, timeaxis=1,) dev.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='sharedarray', sharedarray_shape=(nb_channel, 2048*50), ring_buffer_method = 'double', timeaxis = 1, dtype = 'float32') dev.initialize() # trigger trigger = AnalogTrigger() trigger.configure() trigger.input.connect(dev.output) trigger.output.configure(protocol='tcp', interface='127.0.0.1', transfermode='plaindata') trigger.initialize() trigger.params['threshold'] = 1. trigger.params['front'] = '+' return dev, trigger