| 
					
				 | 
			
			
				@@ -20,17 +20,15 @@ if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print("Warning: failed to XInitThreads()") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from PyQt5 import Qt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from gnuradio import qtgui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from gnuradio.filter import firdes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import sip 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio import analog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio import audio 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio import filter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from gnuradio.filter import firdes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio import gr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio.fft import window 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import signal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from PyQt5 import Qt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from argparse import ArgumentParser 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio.eng_arg import eng_float, intx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from gnuradio import eng_notation 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -111,85 +109,6 @@ class fm_radio(gr.top_block, Qt.QWidget): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 decimation=channel_width_hertz, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 taps=[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 fractional_bw=0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0 = qtgui.waterfall_sink_c( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1024, #size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            window.WIN_BLACKMAN_hARRIS, #wintype 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            (frequency_mhz*1e6), #fc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            samp_rate, #bw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            "", #name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1, #number of inputs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            None # parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.set_update_time(0.10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.enable_grid(False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.enable_axis_labels(True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        labels = ['', '', '', '', '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  '', '', '', '', ''] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        colors = [0, 0, 0, 0, 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  0, 0, 0, 0, 0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        alphas = [1.0, 1.0, 1.0, 1.0, 1.0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  1.0, 1.0, 1.0, 1.0, 1.0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for i in range(1): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if len(labels[i]) == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self.qtgui_waterfall_sink_x_0.set_line_label(i, "Data {0}".format(i)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self.qtgui_waterfall_sink_x_0.set_line_label(i, labels[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.qtgui_waterfall_sink_x_0.set_color_map(i, colors[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.qtgui_waterfall_sink_x_0.set_line_alpha(i, alphas[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.set_intensity_range(-140, 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self._qtgui_waterfall_sink_x_0_win = sip.wrapinstance(self.qtgui_waterfall_sink_x_0.qwidget(), Qt.QWidget) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.top_layout.addWidget(self._qtgui_waterfall_sink_x_0_win) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0 = qtgui.freq_sink_f( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1024, #size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            window.WIN_BLACKMAN_hARRIS, #wintype 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            0, #fc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            channel_width_hertz, #bw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            "Demod Out", #name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            None # parent 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_update_time(0.10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_y_axis((-140), 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_y_label('Relative Gain', 'dB') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.enable_autoscale(False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.enable_grid(False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_fft_average(1.0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.enable_axis_labels(True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.enable_control_panel(False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_fft_window_normalized(False) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.disable_legend() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_plot_pos_half(not True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        labels = ['', '', '', '', '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            '', '', '', '', ''] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        widths = [1, 1, 1, 1, 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1, 1, 1, 1, 1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        colors = ["blue", "red", "green", "black", "cyan", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            "magenta", "yellow", "dark red", "dark green", "dark blue"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        alphas = [1.0, 1.0, 1.0, 1.0, 1.0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            1.0, 1.0, 1.0, 1.0, 1.0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for i in range(1): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if len(labels[i]) == 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self.qtgui_freq_sink_x_0.set_line_label(i, "Data {0}".format(i)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                self.qtgui_freq_sink_x_0.set_line_label(i, labels[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.qtgui_freq_sink_x_0.set_line_width(i, widths[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.qtgui_freq_sink_x_0.set_line_color(i, colors[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self._qtgui_freq_sink_x_0_win = sip.wrapinstance(self.qtgui_freq_sink_x_0.qwidget(), Qt.QWidget) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.top_layout.addWidget(self._qtgui_freq_sink_x_0_win) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.low_pass_filter_0 = filter.fir_filter_ccf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             (int(samp_rate/channel_width_hertz)), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             firdes.low_pass( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,12 +128,10 @@ class fm_radio(gr.top_block, Qt.QWidget): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ################################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # Connections 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ################################################## 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.connect((self.analog_wfm_rcv_0, 0), (self.qtgui_freq_sink_x_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.connect((self.analog_wfm_rcv_0, 0), (self.rational_resampler_xxx_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.connect((self.low_pass_filter_0, 0), (self.analog_wfm_rcv_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.connect((self.rational_resampler_xxx_0, 0), (self.audio_sink_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.connect((self.rtlsdr_source_0, 0), (self.low_pass_filter_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.connect((self.rtlsdr_source_0, 0), (self.qtgui_waterfall_sink_x_0, 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def closeEvent(self, event): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -231,7 +148,6 @@ class fm_radio(gr.top_block, Qt.QWidget): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_samp_rate(self, samp_rate): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.samp_rate = samp_rate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.low_pass_filter_0.set_taps(firdes.low_pass(2, self.samp_rate, 100000, 10000, window.WIN_KAISER, 6.76)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.set_frequency_range((self.frequency_mhz*1e6), self.samp_rate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_sample_rate(self.samp_rate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_frequency_mhz(self): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -239,7 +155,6 @@ class fm_radio(gr.top_block, Qt.QWidget): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_frequency_mhz(self, frequency_mhz): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.frequency_mhz = frequency_mhz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_waterfall_sink_x_0.set_frequency_range((self.frequency_mhz*1e6), self.samp_rate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.rtlsdr_source_0.set_center_freq((self.frequency_mhz*1e6), 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_channel_width_hertz(self): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -247,7 +162,6 @@ class fm_radio(gr.top_block, Qt.QWidget): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def set_channel_width_hertz(self, channel_width_hertz): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.channel_width_hertz = channel_width_hertz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.qtgui_freq_sink_x_0.set_frequency_range(0, self.channel_width_hertz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def get_audio_sample_rate_hertz(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.audio_sample_rate_hertz 
			 |