Added gain, fc (carrier frequency) and sample frequency parameters to the rtlsdr and usrp apps.
diff --git a/apps/airprobe_usrp.py b/apps/airprobe_usrp.py
index 63426a3..f87f8ee 100755
--- a/apps/airprobe_usrp.py
+++ b/apps/airprobe_usrp.py
@@ -2,7 +2,7 @@
##################################################
# Gnuradio Python Flow Graph
# Title: Airprobe Usrp
-# Generated: Sat Jan 3 00:02:32 2015
+# Generated: Sat Jan 3 00:30:50 2015
##################################################
from PyQt4 import Qt
@@ -25,7 +25,7 @@
from distutils.version import StrictVersion
class airprobe_usrp(gr.top_block, Qt.QWidget):
- def __init__(self):
+ def __init__(self, samp_rate=2000000.052982, gain=30, fc=939.4e6):
gr.top_block.__init__(self, "Airprobe Usrp")
Qt.QWidget.__init__(self)
self.setWindowTitle("Airprobe Usrp")
@@ -50,11 +50,17 @@
##################################################
+ # Parameters
+ ##################################################
+ self.samp_rate = samp_rate
+ self.gain = gain
+ self.fc = fc
+
+ ##################################################
# Variables
##################################################
- self.samp_rate = samp_rate = 100e6/100
- self.g = g = 30
- self.fc = fc = 1869e6
+ self.g_slider = g_slider = gain
+ self.fc_slider = fc_slider = fc
self.SDCCH = SDCCH = 6
self.RACH = RACH = 3
self.PCH = PCH = 5
@@ -66,45 +72,45 @@
##################################################
# Blocks
##################################################
- self._g_layout = Qt.QHBoxLayout()
- self._g_layout.addWidget(Qt.QLabel("Gain"+": "))
+ self._g_slider_layout = Qt.QHBoxLayout()
+ self._g_slider_layout.addWidget(Qt.QLabel("Gain"+": "))
class qwt_counter_pyslot(Qwt.QwtCounter):
def __init__(self, parent=None):
Qwt.QwtCounter.__init__(self, parent)
@pyqtSlot('double')
def setValue(self, value):
super(Qwt.QwtCounter, self).setValue(value)
- self._g_counter = qwt_counter_pyslot()
- self._g_counter.setRange(0, 50, 0.5)
- self._g_counter.setNumButtons(2)
- self._g_counter.setMinimumWidth(100)
- self._g_counter.setValue(self.g)
- self._g_layout.addWidget(self._g_counter)
- self._g_counter.valueChanged.connect(self.set_g)
- self.top_layout.addLayout(self._g_layout)
- self._fc_layout = Qt.QVBoxLayout()
- self._fc_tool_bar = Qt.QToolBar(self)
- self._fc_layout.addWidget(self._fc_tool_bar)
- self._fc_tool_bar.addWidget(Qt.QLabel("Frequency"+": "))
+ self._g_slider_counter = qwt_counter_pyslot()
+ self._g_slider_counter.setRange(0, 50, 0.5)
+ self._g_slider_counter.setNumButtons(2)
+ self._g_slider_counter.setMinimumWidth(100)
+ self._g_slider_counter.setValue(self.g_slider)
+ self._g_slider_layout.addWidget(self._g_slider_counter)
+ self._g_slider_counter.valueChanged.connect(self.set_g_slider)
+ self.top_layout.addLayout(self._g_slider_layout)
+ self._fc_slider_layout = Qt.QVBoxLayout()
+ self._fc_slider_tool_bar = Qt.QToolBar(self)
+ self._fc_slider_layout.addWidget(self._fc_slider_tool_bar)
+ self._fc_slider_tool_bar.addWidget(Qt.QLabel("Frequency"+": "))
class qwt_counter_pyslot(Qwt.QwtCounter):
def __init__(self, parent=None):
Qwt.QwtCounter.__init__(self, parent)
@pyqtSlot('double')
def setValue(self, value):
super(Qwt.QwtCounter, self).setValue(value)
- self._fc_counter = qwt_counter_pyslot()
- self._fc_counter.setRange(1800e6, 1900e6, 2e5)
- self._fc_counter.setNumButtons(2)
- self._fc_counter.setValue(self.fc)
- self._fc_tool_bar.addWidget(self._fc_counter)
- self._fc_counter.valueChanged.connect(self.set_fc)
- self._fc_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot)
- self._fc_slider.setRange(1800e6, 1900e6, 2e5)
- self._fc_slider.setValue(self.fc)
- self._fc_slider.setMinimumWidth(100)
- self._fc_slider.valueChanged.connect(self.set_fc)
- self._fc_layout.addWidget(self._fc_slider)
- self.top_layout.addLayout(self._fc_layout)
+ self._fc_slider_counter = qwt_counter_pyslot()
+ self._fc_slider_counter.setRange(925e6, 960e6, 2e5)
+ self._fc_slider_counter.setNumButtons(2)
+ self._fc_slider_counter.setValue(self.fc_slider)
+ self._fc_slider_tool_bar.addWidget(self._fc_slider_counter)
+ self._fc_slider_counter.valueChanged.connect(self.set_fc_slider)
+ self._fc_slider_slider = Qwt.QwtSlider(None, Qt.Qt.Horizontal, Qwt.QwtSlider.BottomScale, Qwt.QwtSlider.BgSlot)
+ self._fc_slider_slider.setRange(925e6, 960e6, 2e5)
+ self._fc_slider_slider.setValue(self.fc_slider)
+ self._fc_slider_slider.setMinimumWidth(100)
+ self._fc_slider_slider.valueChanged.connect(self.set_fc_slider)
+ self._fc_slider_layout.addWidget(self._fc_slider_slider)
+ self.top_layout.addLayout(self._fc_slider_layout)
self.uhd_usrp_source_0 = uhd.usrp_source(
",".join(("addr=192.168.10.2", "")),
uhd.stream_args(
@@ -114,8 +120,8 @@
)
self.uhd_usrp_source_0.set_clock_source("internal", 0)
self.uhd_usrp_source_0.set_samp_rate(samp_rate)
- self.uhd_usrp_source_0.set_center_freq(fc, 0)
- self.uhd_usrp_source_0.set_gain(g, 0)
+ self.uhd_usrp_source_0.set_center_freq(fc_slider, 0)
+ self.uhd_usrp_source_0.set_gain(g_slider, 0)
self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c(
1024, #size
firdes.WIN_BLACKMAN_hARRIS, #wintype
@@ -164,7 +170,6 @@
)
self.gsm_control_channels_decoder_0 = grgsm.control_channels_decoder()
self.blocks_socket_pdu_0 = blocks.socket_pdu("UDP_CLIENT", "127.0.0.1", "4729", 10000, False)
- self.blocks_message_debug_0 = blocks.message_debug()
##################################################
# Connections
@@ -180,7 +185,6 @@
self.msg_connect(self.gsm_control_channels_decoder_0, "msgs", self.blocks_socket_pdu_0, "pdus")
self.msg_connect(self.gsm_universal_ctrl_chans_demapper_0, "bursts", self.gsm_control_channels_decoder_0, "bursts")
self.msg_connect(self.gsm_receiver_0, "C0", self.gsm_universal_ctrl_chans_demapper_0, "bursts")
- self.msg_connect(self.gsm_receiver_0, "measurements", self.blocks_message_debug_0, "print")
def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "airprobe_usrp")
@@ -196,13 +200,12 @@
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
self.uhd_usrp_source_0.set_samp_rate(self.samp_rate)
- def get_g(self):
- return self.g
+ def get_gain(self):
+ return self.gain
- def set_g(self, g):
- self.g = g
- Qt.QMetaObject.invokeMethod(self._g_counter, "setValue", Qt.Q_ARG("double", self.g))
- self.uhd_usrp_source_0.set_gain(self.g, 0)
+ def set_gain(self, gain):
+ self.gain = gain
+ self.set_g_slider(self.gain)
def get_fc(self):
return self.fc
@@ -211,9 +214,24 @@
self.fc = fc
self.gsm_input_0.set_fc(self.fc)
self.qtgui_freq_sink_x_0.set_frequency_range(self.fc, self.samp_rate)
- self.uhd_usrp_source_0.set_center_freq(self.fc, 0)
- Qt.QMetaObject.invokeMethod(self._fc_counter, "setValue", Qt.Q_ARG("double", self.fc))
- Qt.QMetaObject.invokeMethod(self._fc_slider, "setValue", Qt.Q_ARG("double", self.fc))
+ self.set_fc_slider(self.fc)
+
+ def get_g_slider(self):
+ return self.g_slider
+
+ def set_g_slider(self, g_slider):
+ self.g_slider = g_slider
+ Qt.QMetaObject.invokeMethod(self._g_slider_counter, "setValue", Qt.Q_ARG("double", self.g_slider))
+ self.uhd_usrp_source_0.set_gain(self.g_slider, 0)
+
+ def get_fc_slider(self):
+ return self.fc_slider
+
+ def set_fc_slider(self, fc_slider):
+ self.fc_slider = fc_slider
+ Qt.QMetaObject.invokeMethod(self._fc_slider_counter, "setValue", Qt.Q_ARG("double", self.fc_slider))
+ Qt.QMetaObject.invokeMethod(self._fc_slider_slider, "setValue", Qt.Q_ARG("double", self.fc_slider))
+ self.uhd_usrp_source_0.set_center_freq(self.fc_slider, 0)
def get_SDCCH(self):
return self.SDCCH
@@ -267,11 +285,17 @@
except:
print "Warning: failed to XInitThreads()"
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+ parser.add_option("-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982),
+ help="Set samp_rate [default=%default]")
+ parser.add_option("-g", "--gain", dest="gain", type="eng_float", default=eng_notation.num_to_str(30),
+ help="Set gain [default=%default]")
+ parser.add_option("-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(939.4e6),
+ help="Set fc [default=%default]")
(options, args) = parser.parse_args()
if(StrictVersion(Qt.qVersion()) >= StrictVersion("4.5.0")):
Qt.QApplication.setGraphicsSystem(gr.prefs().get_string('qtgui','style','raster'))
qapp = Qt.QApplication(sys.argv)
- tb = airprobe_usrp()
+ tb = airprobe_usrp(samp_rate=options.samp_rate, gain=options.gain, fc=options.fc)
tb.start()
tb.show()
def quitting():