X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=gr-qtgui%2Fsrc%2Fpython%2Fusrp2_display.py;h=75d374c2bd393ea970e7e7189da69279935a2498;hb=39cb5b8daee27ccca4d1919706910ccff116f45d;hp=a145569d515ce4d2924e1609b78961a92a991bf5;hpb=103361f6898960e80f042e019369c59fef842c66;p=debian%2Fgnuradio diff --git a/gr-qtgui/src/python/usrp2_display.py b/gr-qtgui/src/python/usrp2_display.py index a145569d..75d374c2 100755 --- a/gr-qtgui/src/python/usrp2_display.py +++ b/gr-qtgui/src/python/usrp2_display.py @@ -61,6 +61,8 @@ class main_window(QtGui.QMainWindow): # Add the qtsnk widgets to the layout box self.gui.sinkLayout.addWidget(snk) + self.gui.dcGainEdit.setText(QtCore.QString("%1").arg(0.001)) + # Connect up some signals self.connect(self.gui.pauseButton, QtCore.SIGNAL("clicked()"), self.pauseFg) @@ -77,6 +79,11 @@ class main_window(QtGui.QMainWindow): self.saveData) self.gui.actionSaveData.setShortcut(QtGui.QKeySequence.Save) + self.connect(self.gui.dcGainEdit, QtCore.SIGNAL("editingFinished()"), + self.dcGainEditText) + self.connect(self.gui.dcCancelCheckBox, QtCore.SIGNAL("clicked(bool)"), + self.dcCancelClicked) + def pauseFg(self): if(self.gui.pauseButton.text() == "Pause"): self.fg.stop() @@ -145,6 +152,14 @@ class main_window(QtGui.QMainWindow): if(len(fileName)): self.fg.save_to_file(str(fileName)) + def dcGainEditText(self): + gain = float(self.gui.dcGainEdit.text()) + self.fg.set_dc_gain(gain) + + def dcCancelClicked(self, state): + self.dcGainEditText() + self.fg.cancel_dc(state) + class my_top_block(gr.top_block): @@ -156,9 +171,9 @@ class my_top_block(gr.top_block): help="select Ethernet interface, default is eth0") parser.add_option("-m", "--mac-addr", type="string", default="", help="select USRP by MAC address, default is auto-select") - parser.add_option("-W", "--bw", type="float", default=1e6, + parser.add_option("-W", "--bw", type="eng_float", default=1e6, help="set bandwidth of receiver [default=%default]") - parser.add_option("-f", "--freq", type="eng_float", default=None, + parser.add_option("-f", "--freq", type="eng_float", default=2412e6, help="set frequency to FREQ", metavar="FREQ") parser.add_option("-g", "--gain", type="eng_float", default=None, help="set gain in dB (default is midpoint)") @@ -201,6 +216,12 @@ class my_top_block(gr.top_block): self.amp = gr.multiply_const_cc(0.0) self.set_amplifier_gain(100) + # Create a single-pole IIR filter to remove DC + # but don't connect it yet + self.dc_gain = 0.001 + self.dc = gr.single_pole_iir_filter_cc(self.dc_gain) + self.dc_sub = gr.sub_cc() + self.connect(self.u, self.amp, self.snk) if self.show_debug_info: @@ -224,16 +245,13 @@ class my_top_block(gr.top_block): def save_to_file(self, name): - # Pause the flow graph - self.stop() - self.wait() + self.lock() # Add file sink to save data self.file_sink = gr.file_sink(gr.sizeof_gr_complex, name) self.connect(self.amp, self.file_sink) - # Restart flow graph - self.start() + self.unlock() def set_gain(self, gain): self._gain = gain @@ -259,8 +277,28 @@ class my_top_block(gr.top_block): pass def set_amplifier_gain(self, amp): - self._amp_value = amp - self.amp.set_k(self._amp_value) + self._amp_value = amp + self.amp.set_k(self._amp_value) + + def set_dc_gain(self, gain): + self.dc.set_taps(gain) + + def cancel_dc(self, state): + self.lock() + + if(state): + self.disconnect(self.u, self.amp) + self.connect(self.u, (self.dc_sub,0)) + self.connect(self.u, self.dc, (self.dc_sub,1)) + self.connect(self.dc_sub, self.amp) + else: + self.disconnect(self.dc_sub, self.amp) + self.disconnect(self.dc, (self.dc_sub,1)) + self.disconnect(self.u, self.dc) + self.disconnect(self.u, (self.dc_sub,0)) + self.connect(self.u, self.amp) + + self.unlock() def main (): tb = my_top_block()