def __init__(
         self,
         parent,
         baseband_freq=0,
         ref_level=50,
         sample_rate=1,
         fft_size=512,
         fft_rate=waterfall_window.DEFAULT_FRAME_RATE,
         average=False,
         avg_alpha=None,
         title='',
         size=waterfall_window.DEFAULT_WIN_SIZE,
         ref_scale=2.0,
         dynamic_range=80,
         num_lines=256,
         win=None,
         **kwargs  #do not end with a comma
 ):
     #ensure avg alpha
     if avg_alpha is None: avg_alpha = 2.0 / fft_rate
     #init
     gr.hier_block2.__init__(
         self,
         "waterfall_sink",
         gr.io_signature(1, 1, self._item_size),
         gr.io_signature(0, 0, 0),
     )
     #blocks
     fft = self._fft_chain(
         sample_rate=sample_rate,
         fft_size=fft_size,
         frame_rate=fft_rate,
         ref_scale=ref_scale,
         avg_alpha=avg_alpha,
         average=average,
         win=win,
     )
     msgq = gr.msg_queue(2)
     sink = blocks.message_sink(gr.sizeof_float * fft_size, msgq, True)
     #controller
     self.controller = pubsub()
     self.controller.subscribe(AVERAGE_KEY, fft.set_average)
     self.controller.publish(AVERAGE_KEY, fft.average)
     self.controller.subscribe(AVG_ALPHA_KEY, fft.set_avg_alpha)
     self.controller.publish(AVG_ALPHA_KEY, fft.avg_alpha)
     self.controller.subscribe(SAMPLE_RATE_KEY, fft.set_sample_rate)
     self.controller.publish(SAMPLE_RATE_KEY, fft.sample_rate)
     self.controller.subscribe(DECIMATION_KEY, fft.set_decimation)
     self.controller.publish(DECIMATION_KEY, fft.decimation)
     self.controller.subscribe(FRAME_RATE_KEY, fft.set_vec_rate)
     self.controller.publish(FRAME_RATE_KEY, fft.frame_rate)
     #start input watcher
     common.input_watcher(msgq, self.controller, MSG_KEY)
     #create window
     self.win = waterfall_window.waterfall_window(
         parent=parent,
         controller=self.controller,
         size=size,
         title=title,
         real=self._real,
         fft_size=fft_size,
         num_lines=num_lines,
         baseband_freq=baseband_freq,
         decimation_key=DECIMATION_KEY,
         sample_rate_key=SAMPLE_RATE_KEY,
         frame_rate_key=FRAME_RATE_KEY,
         dynamic_range=dynamic_range,
         ref_level=ref_level,
         average_key=AVERAGE_KEY,
         avg_alpha_key=AVG_ALPHA_KEY,
         msg_key=MSG_KEY,
     )
     common.register_access_methods(self, self.win)
     setattr(self.win, 'set_baseband_freq',
             getattr(self, 'set_baseband_freq'))  #BACKWARDS
     #connect
     self.wxgui_connect(self, fft, sink)
Beispiel #2
0
	def __init__(
		self,
		parent,
		x_offset=0,
		ref_level=50,
		#sample_rate=1,
		data_len=512*2,
		#fft_rate=waterfall_window.DEFAULT_FRAME_RATE,
		#average=False,
		#avg_alpha=None,
		title='',
		size=waterfall_window.DEFAULT_WIN_SIZE,
		ref_scale=2.0,
		dynamic_range=80,
		num_lines=256,
		win=None,
		always_run=False,
		**kwargs #do not end with a comma
	):
		#ensure avg alpha
		#if avg_alpha is None: avg_alpha = 2.0/fft_rate
		#init
		gr.hier_block2.__init__(
			self,
			"waterfall_sink",
			gr.io_signature(1, 1, gr.sizeof_float * data_len),
			gr.io_signature(0, 0, 0),
		)
		#blocks
		msgq = gr.msg_queue(2)
		sink = blocks.message_sink(gr.sizeof_float*data_len, msgq, True)
		#controller
		self.controller = pubsub()
		#start input watcher
		common.input_watcher(msgq, self.controller, MSG_KEY)
		#create window
		self.win = waterfall_window.waterfall_window(
			parent=parent,
			controller=self.controller,
			size=size,
			title=title,
			data_len=data_len,
			num_lines=num_lines,
			x_offset=x_offset,
			#decimation_key=DECIMATION_KEY,
			#sample_rate_key=SAMPLE_RATE_KEY,
			#frame_rate_key=FRAME_RATE_KEY,
			dynamic_range=dynamic_range,
			ref_level=ref_level,
			#average_key=AVERAGE_KEY,
			#avg_alpha_key=AVG_ALPHA_KEY,
			msg_key=MSG_KEY,
		)
		common.register_access_methods(self, self.win)
		setattr(self.win, 'set_baseband_freq', getattr(self, 'set_baseband_freq')) #BACKWARDS	# FIXME
		#connect
		if always_run:
			connect_fn = self.connect
		else:
			connect_fn = self.wxgui_connect
		
		connect_fn(self, sink)
	def __init__(
		self,
		parent,
		baseband_freq=0,
		ref_level=50,
		sample_rate=1,
		fft_size=512,
		fft_rate=waterfall_window.DEFAULT_FRAME_RATE,
		average=False,
		avg_alpha=None,
		title='',
		size=waterfall_window.DEFAULT_WIN_SIZE,
		ref_scale=2.0,
		dynamic_range=80,
		num_lines=256,
		win=None,
		**kwargs #do not end with a comma
	):
		#ensure avg alpha
		if avg_alpha is None: avg_alpha = 2.0/fft_rate
		#init
		gr.hier_block2.__init__(
			self,
			"waterfall_sink",
			gr.io_signature(1, 1, self._item_size),
			gr.io_signature(0, 0, 0),
		)
		#blocks
		fft = self._fft_chain(
			sample_rate=sample_rate,
			fft_size=fft_size,
			frame_rate=fft_rate,
			ref_scale=ref_scale,
			avg_alpha=avg_alpha,
			average=average,
			win=win,
		)
		msgq = gr.msg_queue(2)
		sink = blocks.message_sink(gr.sizeof_float*fft_size, msgq, True)
		#controller
		self.controller = pubsub()
		self.controller.subscribe(AVERAGE_KEY, fft.set_average)
		self.controller.publish(AVERAGE_KEY, fft.average)
		self.controller.subscribe(AVG_ALPHA_KEY, fft.set_avg_alpha)
		self.controller.publish(AVG_ALPHA_KEY, fft.avg_alpha)
		self.controller.subscribe(SAMPLE_RATE_KEY, fft.set_sample_rate)
		self.controller.publish(SAMPLE_RATE_KEY, fft.sample_rate)
		self.controller.subscribe(DECIMATION_KEY, fft.set_decimation)
		self.controller.publish(DECIMATION_KEY, fft.decimation)
		self.controller.subscribe(FRAME_RATE_KEY, fft.set_vec_rate)
		self.controller.publish(FRAME_RATE_KEY, fft.frame_rate)
		#start input watcher
		common.input_watcher(msgq, self.controller, MSG_KEY)
		#create window
		self.win = waterfall_window.waterfall_window(
			parent=parent,
			controller=self.controller,
			size=size,
			title=title,
			real=self._real,
			fft_size=fft_size,
			num_lines=num_lines,
			baseband_freq=baseband_freq,
			decimation_key=DECIMATION_KEY,
			sample_rate_key=SAMPLE_RATE_KEY,
			frame_rate_key=FRAME_RATE_KEY,
			dynamic_range=dynamic_range,
			ref_level=ref_level,
			average_key=AVERAGE_KEY,
			avg_alpha_key=AVG_ALPHA_KEY,
			msg_key=MSG_KEY,
		)
		common.register_access_methods(self, self.win)
		setattr(self.win, 'set_baseband_freq', getattr(self, 'set_baseband_freq')) #BACKWARDS
		#connect
		self.wxgui_connect(self, fft, sink)
Beispiel #4
0
    def __init__(
            self,
            parent,
            x_offset=0,
            ref_level=50,
            #sample_rate=1,
            data_len=512 * 2,
            #fft_rate=waterfall_window.DEFAULT_FRAME_RATE,
            #average=False,
            #avg_alpha=None,
            title='',
            size=waterfall_window.DEFAULT_WIN_SIZE,
            ref_scale=2.0,
            dynamic_range=80,
            num_lines=256,
            win=None,
            always_run=False,
            **kwargs  #do not end with a comma
    ):
        #ensure avg alpha
        #if avg_alpha is None: avg_alpha = 2.0/fft_rate
        #init
        gr.hier_block2.__init__(
            self,
            "waterfall_sink",
            gr.io_signature(1, 1, gr.sizeof_float * data_len),
            gr.io_signature(0, 0, 0),
        )
        #blocks
        msgq = gr.msg_queue(2)
        sink = blocks.message_sink(gr.sizeof_float * data_len, msgq, True)
        #controller
        self.controller = pubsub()
        #start input watcher
        common.input_watcher(msgq, self.controller, MSG_KEY)
        #create window
        self.win = waterfall_window.waterfall_window(
            parent=parent,
            controller=self.controller,
            size=size,
            title=title,
            data_len=data_len,
            num_lines=num_lines,
            x_offset=x_offset,
            #decimation_key=DECIMATION_KEY,
            #sample_rate_key=SAMPLE_RATE_KEY,
            #frame_rate_key=FRAME_RATE_KEY,
            dynamic_range=dynamic_range,
            ref_level=ref_level,
            #average_key=AVERAGE_KEY,
            #avg_alpha_key=AVG_ALPHA_KEY,
            msg_key=MSG_KEY,
        )
        common.register_access_methods(self, self.win)
        setattr(self.win, 'set_baseband_freq',
                getattr(self, 'set_baseband_freq'))  #BACKWARDS	# FIXME
        #connect
        if always_run:
            connect_fn = self.connect
        else:
            connect_fn = self.wxgui_connect

        connect_fn(self, sink)