summaryrefslogtreecommitdiff
path: root/gr-uhd
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd')
-rwxr-xr-xgr-uhd/apps/uhd_fft.py14
-rwxr-xr-xgr-uhd/apps/uhd_rx_cfile.py16
-rwxr-xr-xgr-uhd/apps/uhd_rx_nogui.py23
-rwxr-xr-xgr-uhd/apps/uhd_siggen.py17
-rw-r--r--gr-uhd/doc/uhd.dox66
-rwxr-xr-xgr-uhd/examples/fm_tx4.py7
-rwxr-xr-xgr-uhd/examples/fm_tx_2_daughterboards.py11
-rwxr-xr-xgr-uhd/examples/usrp_am_mw_rcv.py7
-rwxr-xr-xgr-uhd/examples/usrp_nbfm_ptt.py27
-rwxr-xr-xgr-uhd/examples/usrp_nbfm_rcv.py11
-rwxr-xr-xgr-uhd/examples/usrp_spectrum_sense.py9
-rwxr-xr-xgr-uhd/examples/usrp_tv_rcv.py12
-rwxr-xr-xgr-uhd/examples/usrp_tv_rcv_nogui.py11
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv.py9
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv2_nogui.py8
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv_fmdet.py9
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv_nogui.py10
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv_pll.py9
-rwxr-xr-xgr-uhd/examples/usrp_wfm_rcv_sca.py11
-rwxr-xr-xgr-uhd/examples/usrp_wxapt_rcv.py9
20 files changed, 267 insertions, 29 deletions
diff --git a/gr-uhd/apps/uhd_fft.py b/gr-uhd/apps/uhd_fft.py
index 0f0c274e8..7f529a528 100755
--- a/gr-uhd/apps/uhd_fft.py
+++ b/gr-uhd/apps/uhd_fft.py
@@ -45,9 +45,10 @@ class app_top_block(stdgui2.std_top_block):
self.panel = panel
parser = OptionParser(option_class=eng_option)
- parser.add_option("-a", "--address", type="string",
- default="addr=192.168.10.2",
- help="Address of UHD device, [default=%default]")
+ parser.add_option("-a", "--args", type="string", default="",
+ help="UHD device address args , [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
@@ -73,7 +74,7 @@ class app_top_block(stdgui2.std_top_block):
self.options = options
self.show_debug_info = True
- self.u = uhd.usrp_source(device_addr=options.address,
+ self.u = uhd.usrp_source(device_addr=options.args,
io_type=uhd.io_type.COMPLEX_FLOAT32,
num_channels=1)
@@ -118,6 +119,11 @@ class app_top_block(stdgui2.std_top_block):
self.set_gain(options.gain)
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
if(options.antenna):
self.u.set_antenna(options.antenna, 0)
diff --git a/gr-uhd/apps/uhd_rx_cfile.py b/gr-uhd/apps/uhd_rx_cfile.py
index f49052d9c..625de36d3 100755
--- a/gr-uhd/apps/uhd_rx_cfile.py
+++ b/gr-uhd/apps/uhd_rx_cfile.py
@@ -41,12 +41,12 @@ class rx_cfile_block(gr.top_block):
# Create a UHD device source
if options.output_shorts:
- self._u = uhd.usrp_source(device_addr=options.address,
+ self._u = uhd.usrp_source(device_addr=options.args,
io_type=uhd.io_type.COMPLEX_INT16,
num_channels=1)
self._sink = gr.file_sink(gr.sizeof_short*2, filename)
else:
- self._u = uhd.usrp_source(device_addr=options.address,
+ self._u = uhd.usrp_source(device_addr=options.args,
io_type=uhd.io_type.COMPLEX_FLOAT32,
num_channels=1)
self._sink = gr.file_sink(gr.sizeof_gr_complex, filename)
@@ -61,6 +61,10 @@ class rx_cfile_block(gr.top_block):
print "Using mid-point gain of", options.gain, "(", g.start(), "-", g.stop(), ")"
self._u.set_gain(options.gain)
+ # Set the subdevice spec
+ if(options.spec):
+ self._u.set_subdev_spec(options.spec, 0)
+
# Set the antenna
if(options.antenna):
self._u.set_antenna(options.antenna, 0)
@@ -89,7 +93,7 @@ class rx_cfile_block(gr.top_block):
input_rate = self._u.get_samp_rate()
if options.verbose:
- print "Address:", options.address
+ print "Args: ", options.args
print "Rx gain:", options.gain
print "Rx baseband frequency:", n2s(tr.actual_rf_freq)
print "Rx DDC frequency:", n2s(tr.actual_dsp_freq)
@@ -107,8 +111,10 @@ class rx_cfile_block(gr.top_block):
def get_options():
usage="%prog: [options] output_filename"
parser = OptionParser(option_class=eng_option, usage=usage)
- parser.add_option("-a", "--address", type="string", default="addr=192.168.10.2",
- help="Address of UHD device, [default=%default]")
+ parser.add_option("-a", "--args", type="string", default="",
+ help="UHD device address args , [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("", "--samp-rate", type="eng_float", default=1e6,
diff --git a/gr-uhd/apps/uhd_rx_nogui.py b/gr-uhd/apps/uhd_rx_nogui.py
index 6f860b820..25068b3ac 100755
--- a/gr-uhd/apps/uhd_rx_nogui.py
+++ b/gr-uhd/apps/uhd_rx_nogui.py
@@ -83,12 +83,12 @@ class uhd_src(gr.hier_block2):
Calibration value is the offset from the tuned frequency to
the actual frequency.
"""
- def __init__(self, address, samp_rate, gain=None, calibration=0.0):
+ def __init__(self, args, spec, antenna, samp_rate, gain=None, calibration=0.0):
gr.hier_block2.__init__(self, "uhd_src",
gr.io_signature(0, 0, 0), # Input signature
gr.io_signature(1, 1, gr.sizeof_gr_complex)) # Output signature
- self._src = uhd.usrp_source(device_addr=address,
+ self._src = uhd.usrp_source(device_addr=args,
io_type=uhd.io_type.COMPLEX_FLOAT32,
num_channels=1)
@@ -106,7 +106,15 @@ class uhd_src(gr.hier_block2):
gain = (g.start()+g.stop())/2.0
print "Using gain: ", gain
self._src.set_gain(gain)
+
+ # Set the subdevice spec
+ if(spec):
+ self._src.set_subdev_spec(spec, 0)
+ # Set the antenna
+ if(antenna):
+ self._src.set_antenna(antenna, 0)
+
self._cal = calibration
self.connect(self._src, self._resamp, self)
@@ -124,7 +132,9 @@ class app_top_block(gr.top_block):
(dev_rate, channel_rate, audio_rate,
channel_pass, channel_stop, demod) = demod_params[options.modulation]
- DEV = uhd_src(options.address, # UHD device address
+ DEV = uhd_src(options.args, # UHD device address
+ options.spec, # device subdev spec
+ options.antenna, # device antenna
dev_rate, # device sample rate
options.gain, # Receiver gain
options.calibration) # Frequency offset
@@ -185,9 +195,10 @@ class app_top_block(gr.top_block):
def main():
parser = OptionParser(option_class=eng_option)
- parser.add_option("-a", "--address", type="string",
- default="addr=192.168.10.2",
- help="Address of UHD device, [default=%default]")
+ parser.add_option("-a", "--args", type="string", default="",
+ help="UHD device address args , [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate [default=%default]")
parser.add_option("-f", "--frequency", type="eng_float",
diff --git a/gr-uhd/apps/uhd_siggen.py b/gr-uhd/apps/uhd_siggen.py
index 921ba44b5..4b7060460 100755
--- a/gr-uhd/apps/uhd_siggen.py
+++ b/gr-uhd/apps/uhd_siggen.py
@@ -92,12 +92,18 @@ class top_block(gr.top_block, pubsub):
self[TYPE_KEY] = options.type #set type last
def _setup_usrpx(self, options):
- self._u = uhd.usrp_sink(device_addr=options.address,
+ self._u = uhd.usrp_sink(device_addr=options.args,
io_type=uhd.io_type.COMPLEX_FLOAT32,
num_channels=1)
self._u.set_samp_rate(options.samp_rate)
+
+ # Set the subdevice spec
+ if(options.spec):
+ self._u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
if(options.antenna):
- self._u.set_antenna(options.antenna)
+ self._u.set_antenna(options.antenna, 0)
self.publish(DESC_KEY, lambda: str(self._u))
self.publish(FREQ_RANGE_KEY, self._u.get_freq_range)
@@ -280,9 +286,10 @@ def get_options():
usage="%prog: [options]"
parser = OptionParser(option_class=eng_option, usage=usage)
- parser.add_option("-a", "--address", type="string",
- default="addr=192.168.10.2",
- help="Address of UHD device, [default=%default]")
+ parser.add_option("-a", "--args", type="string", default="",
+ help="UHD device address args , [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
diff --git a/gr-uhd/doc/uhd.dox b/gr-uhd/doc/uhd.dox
index f08fe2f06..92ad7db4c 100644
--- a/gr-uhd/doc/uhd.dox
+++ b/gr-uhd/doc/uhd.dox
@@ -32,4 +32,70 @@ The UHD Doxygen page is located:
http://files.ettus.com/uhd_docs/doxygen/html/index.html
+\section Typical Setup
+
+A typical option parser setup for a UHD device looks like
+
+\code
+ parser = OptionParser(option_class=eng_option)
+ parser.add_option("-a", "--args", type="string", default="",
+ help="UHD device address args , [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
+ parser.add_option("-A", "--antenna", type="string", default=None,
+ help="select Rx Antenna where appropriate")
+ parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
+ help="set sample rate (bandwidth) [default=%default]")
+ parser.add_option("-f", "--freq", type="eng_float", default=None,
+ 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)")
+\endcode
+
+To use these options to create a UHD source object:
+
+\code
+ self.u = uhd.usrp_source(device_addr=options.args,
+ io_type=uhd.io_type.COMPLEX_FLOAT32,
+ num_channels=1)
+
+ self.u.set_samp_rate(options.samp_rate)
+
+ # if no gain was specified, use the mid-point in dB
+ if options.gain is None:
+ g = self.u.get_gain_range()
+ options.gain = float(g.start()+g.stop())/2
+ self.u.set_gain(options.gain, 0)
+
+ # Set the center frequency
+ self.u.set_center_freq(options.freq, 0)
+
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+\endcode
+
+Frequently, your application may need a sample rate that is not
+supported by the UHD device. If you have extra CPU power to spare, you
+can easily set the sample rate you want, then ask the device what the
+actual sample rate set was. Then, you can easily create an arbitrary
+resampler to take care of the difference.
+
+\code
+ self.u.set_samp_rate(options.samp_rate)
+
+ desired_rate = options.samp_rate
+ actual_rate = self.u.get_samp_rate()
+ resample = desired_rate / actual_rate
+
+ # Use the blks2 version and pass only the resample factor.
+ # This block builds a half-band filter for you
+
+ self.resampler = blks2.pfb_arb_resampler_ccf(resample)
+\endcode
+
*/
diff --git a/gr-uhd/examples/fm_tx4.py b/gr-uhd/examples/fm_tx4.py
index 7b04ebd73..11148ea63 100755
--- a/gr-uhd/examples/fm_tx4.py
+++ b/gr-uhd/examples/fm_tx4.py
@@ -85,6 +85,8 @@ class fm_tx_block(stdgui2.std_top_block):
parser = OptionParser (option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=400e3,
@@ -134,6 +136,11 @@ class fm_tx_block(stdgui2.std_top_block):
self.set_gain(options.gain)
self.set_freq(options.freq)
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
if(options.antenna):
self.u.set_antenna(options.antenna, 0)
diff --git a/gr-uhd/examples/fm_tx_2_daughterboards.py b/gr-uhd/examples/fm_tx_2_daughterboards.py
index 25325bd19..61c437a98 100755
--- a/gr-uhd/examples/fm_tx_2_daughterboards.py
+++ b/gr-uhd/examples/fm_tx_2_daughterboards.py
@@ -90,6 +90,8 @@ class my_top_block(gr.top_block):
parser = OptionParser (option_class=eng_option, usage=usage)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=320e3,
@@ -170,6 +172,15 @@ class my_top_block(gr.top_block):
self.set_gain(options.gain, 0)
self.set_gain(options.gain, 1)
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+ self.u.set_antenna(options.antenna, 1)
+
def set_freq(self, target_freq, chan):
"""
Set the center frequency we're interested in.
diff --git a/gr-uhd/examples/usrp_am_mw_rcv.py b/gr-uhd/examples/usrp_am_mw_rcv.py
index a4fba9f0e..db3b35760 100755
--- a/gr-uhd/examples/usrp_am_mw_rcv.py
+++ b/gr-uhd/examples/usrp_am_mw_rcv.py
@@ -40,6 +40,8 @@ class wfm_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
@@ -150,6 +152,11 @@ class wfm_rx_block (stdgui2.std_top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
if(options.antenna):
self.u.set_antenna(options.antenna, 0)
diff --git a/gr-uhd/examples/usrp_nbfm_ptt.py b/gr-uhd/examples/usrp_nbfm_ptt.py
index 1f8a72e79..8f7ddee7d 100755
--- a/gr-uhd/examples/usrp_nbfm_ptt.py
+++ b/gr-uhd/examples/usrp_nbfm_ptt.py
@@ -50,6 +50,8 @@ class ptt_block(stdgui2.std_top_block):
parser = OptionParser (option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option ("-f", "--freq", type="eng_float", default=442.1e6,
@@ -72,9 +74,11 @@ class ptt_block(stdgui2.std_top_block):
if options.freq < 1e6:
options.freq *= 1e6
- self.txpath = transmit_path(options.args, options.tx_gain,
+ self.txpath = transmit_path(options.args, options.spec,
+ options.antenna, options.tx_gain,
options.audio_input)
- self.rxpath = receive_path(options.args, options.rx_gain,
+ self.rxpath = receive_path(options.args, options.spec,
+ options.antenna, options.rx_gain,
options.audio_output)
self.connect(self.txpath)
self.connect(self.rxpath)
@@ -272,7 +276,7 @@ class ptt_block(stdgui2.std_top_block):
# ////////////////////////////////////////////////////////////////////////
class transmit_path(gr.hier_block2):
- def __init__(self, args, gain, audio_input):
+ def __init__(self, args, spec, antenna, gain, audio_input):
gr.hier_block2.__init__(self, "transmit_path",
gr.io_signature(0, 0, 0), # Input signature
gr.io_signature(0, 0, 0)) # Output signature
@@ -331,6 +335,14 @@ class transmit_path(gr.hier_block2):
self.set_enable(False)
+ # Set the subdevice spec
+ if(spec):
+ self.u.set_subdev_spec(spec, 0)
+
+ # Set the antenna
+ if(antenna):
+ self.u.set_antenna(antenna, 0)
+
def set_freq(self, target_freq):
"""
Set the center frequency we're interested in.
@@ -415,7 +427,14 @@ class receive_path(gr.hier_block2):
s = self.squelch_range()
self.set_squelch((s[0]+s[1])/2)
-
+ # Set the subdevice spec
+ if(spec):
+ self.u.set_subdev_spec(spec, 0)
+
+ # Set the antenna
+ if(antenna):
+ self.u.set_antenna(antenna, 0)
+
def volume_range(self):
return (-20.0, 0.0, 0.5)
diff --git a/gr-uhd/examples/usrp_nbfm_rcv.py b/gr-uhd/examples/usrp_nbfm_rcv.py
index 829381e7a..a558b9347 100755
--- a/gr-uhd/examples/usrp_nbfm_rcv.py
+++ b/gr-uhd/examples/usrp_nbfm_rcv.py
@@ -40,6 +40,8 @@ class my_top_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=146.585e6,
@@ -67,7 +69,7 @@ class my_top_block (stdgui2.std_top_block):
self.freq = 0
self.freq_step = 25e3
- self.rxpath = receive_path(options.args, options.antenna,
+ self.rxpath = receive_path(options.args, options.spec, options.antenna,
options.gain, options.audio_output)
self.connect(self.rxpath)
@@ -259,7 +261,7 @@ class my_top_block (stdgui2.std_top_block):
USE_SIMPLE_SQUELCH = False
class receive_path(gr.hier_block2):
- def __init__(self, args, antenna, gain, audio_output):
+ def __init__(self, args, spec, antenna, gain, audio_output):
gr.hier_block2.__init__(self, "receive_path",
gr.io_signature(0, 0, 0), # Input signature
gr.io_signature(0, 0, 0)) # Output signature
@@ -320,6 +322,11 @@ class receive_path(gr.hier_block2):
s = self.squelch_range()
self.set_squelch((s[0]+s[1])/2)
+ # Set the subdevice spec
+ if(spec):
+ self.u.set_subdev_spec(spec, 0)
+
+ # Set the antenna
if(antenna):
self.u.set_antenna(antenna, 0)
diff --git a/gr-uhd/examples/usrp_spectrum_sense.py b/gr-uhd/examples/usrp_spectrum_sense.py
index cf41e7043..01ca60396 100755
--- a/gr-uhd/examples/usrp_spectrum_sense.py
+++ b/gr-uhd/examples/usrp_spectrum_sense.py
@@ -86,6 +86,8 @@ class my_top_block(gr.top_block):
parser = OptionParser(option_class=eng_option, usage=usage)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
@@ -182,6 +184,13 @@ class my_top_block(gr.top_block):
self.set_gain(options.gain)
print "gain =", options.gain
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
def set_next_freq(self):
target_freq = self.next_freq
diff --git a/gr-uhd/examples/usrp_tv_rcv.py b/gr-uhd/examples/usrp_tv_rcv.py
index 2ad1f2122..22493dd00 100755
--- a/gr-uhd/examples/usrp_tv_rcv.py
+++ b/gr-uhd/examples/usrp_tv_rcv.py
@@ -64,6 +64,8 @@ class tv_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option, usage=usage)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
@@ -143,7 +145,15 @@ class tv_rx_block (stdgui2.std_top_block):
self.src=self.u
- self.gain = options.gain
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+
+ self.gain = options.gain
f2uc=gr.float_to_uchar()
diff --git a/gr-uhd/examples/usrp_tv_rcv_nogui.py b/gr-uhd/examples/usrp_tv_rcv_nogui.py
index 3fe426fbc..2324eb29e 100755
--- a/gr-uhd/examples/usrp_tv_rcv_nogui.py
+++ b/gr-uhd/examples/usrp_tv_rcv_nogui.py
@@ -61,6 +61,8 @@ class my_top_block(gr.top_block):
parser = OptionParser(option_class=eng_option, usage=usage)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-s", "--samp-rate", type="eng_float", default=1e6,
@@ -148,6 +150,15 @@ class my_top_block(gr.top_block):
if not r:
sys.stderr.write('Failed to set frequency\n')
raise SystemExit, 1
+
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+
self.agc = gr.agc_cc(1e-7,1.0,1.0) #1e-7
self.am_demod = gr.complex_to_mag ()
diff --git a/gr-uhd/examples/usrp_wfm_rcv.py b/gr-uhd/examples/usrp_wfm_rcv.py
index 138e5045b..cfdaa6d6f 100755
--- a/gr-uhd/examples/usrp_wfm_rcv.py
+++ b/gr-uhd/examples/usrp_wfm_rcv.py
@@ -36,6 +36,8 @@ class wfm_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=100.1e6,
@@ -129,6 +131,13 @@ class wfm_rx_block (stdgui2.std_top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
def _set_status_msg(self, msg, which=0):
self.frame.GetStatusBar().SetStatusText(msg, which)
diff --git a/gr-uhd/examples/usrp_wfm_rcv2_nogui.py b/gr-uhd/examples/usrp_wfm_rcv2_nogui.py
index 13f89c71c..8cbd18475 100755
--- a/gr-uhd/examples/usrp_wfm_rcv2_nogui.py
+++ b/gr-uhd/examples/usrp_wfm_rcv2_nogui.py
@@ -35,6 +35,8 @@ class wfm_rx_block (gr.top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default="A:0 A:0",
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("", "--f1", type="eng_float", default=100.7e6,
@@ -73,7 +75,7 @@ class wfm_rx_block (gr.top_block):
num_channels=2)
# Set front end channel mapping
- self.u.set_subdev_spec("A:0 A:0")
+ self.u.set_subdev_spec(options.spec)
usrp_rate = 320e3
demod_rate = 320e3
@@ -134,6 +136,10 @@ class wfm_rx_block (gr.top_block):
# Set gain for each channel
self.set_gain(options.gain, n)
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, n)
+
def set_vol (self, vol):
self.vol = vol
self.volume_control.set_k(self.vol)
diff --git a/gr-uhd/examples/usrp_wfm_rcv_fmdet.py b/gr-uhd/examples/usrp_wfm_rcv_fmdet.py
index d13ebe829..39c711a6d 100755
--- a/gr-uhd/examples/usrp_wfm_rcv_fmdet.py
+++ b/gr-uhd/examples/usrp_wfm_rcv_fmdet.py
@@ -35,6 +35,8 @@ class wfm_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=100.1e6,
@@ -151,6 +153,13 @@ class wfm_rx_block (stdgui2.std_top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
def _set_status_msg(self, msg, which=0):
self.frame.GetStatusBar().SetStatusText(msg, which)
diff --git a/gr-uhd/examples/usrp_wfm_rcv_nogui.py b/gr-uhd/examples/usrp_wfm_rcv_nogui.py
index 7c2c6050d..90caf7d08 100755
--- a/gr-uhd/examples/usrp_wfm_rcv_nogui.py
+++ b/gr-uhd/examples/usrp_wfm_rcv_nogui.py
@@ -34,6 +34,8 @@ class wfm_rx_block (gr.top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=100.1e6,
@@ -119,6 +121,14 @@ class wfm_rx_block (gr.top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+
def set_vol (self, vol):
g = self.volume_range()
self.vol = max(g[0], min(g[1], vol))
diff --git a/gr-uhd/examples/usrp_wfm_rcv_pll.py b/gr-uhd/examples/usrp_wfm_rcv_pll.py
index 78c05e057..2901bf735 100755
--- a/gr-uhd/examples/usrp_wfm_rcv_pll.py
+++ b/gr-uhd/examples/usrp_wfm_rcv_pll.py
@@ -36,6 +36,8 @@ class wfm_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=100.1e6,
@@ -149,6 +151,13 @@ class wfm_rx_block (stdgui2.std_top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
def _set_status_msg(self, msg, which=0):
self.frame.GetStatusBar().SetStatusText(msg, which)
diff --git a/gr-uhd/examples/usrp_wfm_rcv_sca.py b/gr-uhd/examples/usrp_wfm_rcv_sca.py
index f0f6aec66..9caef7499 100755
--- a/gr-uhd/examples/usrp_wfm_rcv_sca.py
+++ b/gr-uhd/examples/usrp_wfm_rcv_sca.py
@@ -66,6 +66,8 @@ class wfm_rx_sca_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=100.1e6,
@@ -211,7 +213,14 @@ class wfm_rx_sca_block (stdgui2.std_top_block):
self._set_status_msg("Failed to set initial frequency")
self.set_sca_freq(67000) # A common SCA Frequency
-
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
+
def _set_status_msg(self, msg, which=0):
self.frame.GetStatusBar().SetStatusText(msg, which)
diff --git a/gr-uhd/examples/usrp_wxapt_rcv.py b/gr-uhd/examples/usrp_wxapt_rcv.py
index 809756d96..1da51d363 100755
--- a/gr-uhd/examples/usrp_wxapt_rcv.py
+++ b/gr-uhd/examples/usrp_wxapt_rcv.py
@@ -36,6 +36,8 @@ class wxapt_rx_block (stdgui2.std_top_block):
parser=OptionParser(option_class=eng_option)
parser.add_option("-a", "--args", type="string", default="",
help="UHD device address args, [default=%default]")
+ parser.add_option("", "--spec", type="string", default=None,
+ help="Subdevice of UHD device where appropriate")
parser.add_option("-A", "--antenna", type="string", default=None,
help="select Rx Antenna where appropriate")
parser.add_option("-f", "--freq", type="eng_float", default=137.5e6,
@@ -124,6 +126,13 @@ class wxapt_rx_block (stdgui2.std_top_block):
if not(self.set_freq(options.freq)):
self._set_status_msg("Failed to set initial frequency")
+ # Set the subdevice spec
+ if(options.spec):
+ self.u.set_subdev_spec(options.spec, 0)
+
+ # Set the antenna
+ if(options.antenna):
+ self.u.set_antenna(options.antenna, 0)
def _set_status_msg(self, msg, which=0):
self.frame.GetStatusBar().SetStatusText(msg, which)