diff options
author | Josh Blum <josh@joshknows.com> | 2011-02-10 00:56:55 -0800 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-02-10 00:56:55 -0800 |
commit | 7787d1fc1aecc7b59e476c31865b4f32348cb729 (patch) | |
tree | fe4f17f272b201f4208435cd47263f731a97744c /gr-uhd/grc | |
parent | 222465e2bc9ffc7f378c698876f44b3f722e0d37 (diff) |
uhd: replaced multi/single usrp stuff with just one usrp wrapper
Diffstat (limited to 'gr-uhd/grc')
-rw-r--r-- | gr-uhd/grc/Makefile.am | 26 | ||||
-rwxr-xr-x | gr-uhd/grc/gen_uhd_single_usrp_blocks_xml.py | 265 | ||||
-rw-r--r--[-rwxr-xr-x] | gr-uhd/grc/gen_uhd_usrp_blocks.py (renamed from gr-uhd/grc/gen_uhd_multi_usrp_blocks_xml.py) | 39 | ||||
-rw-r--r-- | gr-uhd/grc/uhd_block_tree.xml | 6 | ||||
-rw-r--r-- | gr-uhd/grc/uhd_usrp_sink.xml | 1255 | ||||
-rw-r--r-- | gr-uhd/grc/uhd_usrp_source.xml | 1255 |
6 files changed, 2548 insertions, 298 deletions
diff --git a/gr-uhd/grc/Makefile.am b/gr-uhd/grc/Makefile.am index 30061a7ec9..7e73a5b392 100644 --- a/gr-uhd/grc/Makefile.am +++ b/gr-uhd/grc/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright 2010 Free Software Foundation, Inc. +# Copyright 2010-2011 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -23,17 +23,11 @@ include $(top_srcdir)/Makefile.common grcblocksdir = $(grc_blocksdir) -generated_uhd_multi_usrp_blocks = \ - uhd_multi_usrp_source.xml \ - uhd_multi_usrp_sink.xml +generated_uhd_usrp_blocks = \ + uhd_usrp_source.xml \ + uhd_usrp_sink.xml -generated_uhd_single_usrp_blocks = \ - uhd_single_usrp_source.xml \ - uhd_single_usrp_sink.xml - -BUILT_SOURCES += \ - $(generated_uhd_multi_usrp_blocks) \ - $(generated_uhd_single_usrp_blocks) +BUILT_SOURCES += $(generated_uhd_usrp_blocks) dist_grcblocks_DATA = \ uhd_block_tree.xml \ @@ -42,14 +36,8 @@ dist_grcblocks_DATA = \ ######################################################################## # Rules for generating the source and sink xml wrappers ######################################################################## -EXTRA_DIST += \ - $(srcdir)/gen_uhd_multi_usrp_blocks_xml.py \ - $(srcdir)/gen_uhd_single_usrp_blocks_xml.py - -$(generated_uhd_multi_usrp_blocks): $(srcdir)/gen_uhd_multi_usrp_blocks_xml.py - @echo "generating $@..." - $(PYTHON) $< $@ +EXTRA_DIST += $(srcdir)/gen_uhd_usrp_blocks.py -$(generated_uhd_single_usrp_blocks): $(srcdir)/gen_uhd_single_usrp_blocks_xml.py +$(generated_uhd_usrp_blocks): $(srcdir)/gen_uhd_usrp_blocks.py @echo "generating $@..." $(PYTHON) $< $@ diff --git a/gr-uhd/grc/gen_uhd_single_usrp_blocks_xml.py b/gr-uhd/grc/gen_uhd_single_usrp_blocks_xml.py deleted file mode 100755 index 4de21c9898..0000000000 --- a/gr-uhd/grc/gen_uhd_single_usrp_blocks_xml.py +++ /dev/null @@ -1,265 +0,0 @@ -#!/usr/bin/env python -""" -Copyright 2010-2011 Free Software Foundation, Inc. - -This file is part of GNU Radio - -GNU Radio Companion is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -GNU Radio Companion is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA -""" - -MAIN_TMPL = """\ -<?xml version="1.0"?> -<block> - <name>UHD: Single USRP $sourk.title()</name> - <key>uhd_single_usrp_$(sourk)</key> - <import>from gnuradio import uhd</import> - <make>uhd.single_usrp_$(sourk)( - device_addr=\$dev_addr, - io_type=uhd.io_type.\$type.type, - num_channels=\$nchan, -) -\#if \$ref_clk() -self.\$(id).set_clock_config(uhd.clock_config.external()); -\#end if -\#if \$sd_spec() -self.\$(id).set_subdev_spec(\$sd_spec) -\#end if -self.\$(id).set_samp_rate(\$samp_rate) -#for $n in range($max_nchan) -\#if \$nchan() > $n -self.\$(id).set_center_freq(\$center_freq$(n), $n) -self.\$(id).set_gain(\$gain$(n), $n) - \#if \$ant$(n)() -self.\$(id).set_antenna(\$ant$(n), $n) - \#end if - \#if \$bw$(n)() -self.\$(id).set_bandwidth(\$bw$(n), $n) - \#end if -\#end if -#end for -</make> - <callback>set_samp_rate(\$samp_rate)</callback> - #for $n in range($max_nchan) - <callback>set_center_freq(\$center_freq$(n), $n)</callback> - <callback>set_gain(\$gain$(n), $n)</callback> - <callback>set_antenna(\$ant$(n), $n)</callback> - <callback>set_bandwidth(\$bw$(n), $n)</callback> - #end for - <param> - <name>Input Type</name> - <key>type</key> - <type>enum</type> - <option> - <name>Complex</name> - <key>complex</key> - <opt>type:COMPLEX_FLOAT32</opt> - <opt>vlen:1</opt> - </option> - <option> - <name>Short</name> - <key>short</key> - <opt>type:COMPLEX_INT16</opt> - <opt>vlen:2</opt> - </option> - </param> - <param> - <name>Num Channels</name> - <key>nchan</key> - <value>1</value> - <type>int</type> - <hide>part</hide> - <option> - <name>Single Channel</name> - <key>1</key> - </option> - <option> - <name>Dual Channel</name> - <key>2</key> - </option> - <option> - <name>Quad Channel</name> - <key>4</key> - </option> - </param> - <param> - <name>Device Addr</name> - <key>dev_addr</key> - <value>addr=192.168.10.2</value> - <type>string</type> - <hide> - \#if \$dev_addr() - none - \#else - part - \#end if - </hide> - </param> - <param> - <name>Ref Clock</name> - <key>ref_clk</key> - <value></value> - <type>enum</type> - <hide>\#if \$ref_clk() then 'none' else 'part'#</hide> - <option> - <name>External</name> - <key>ext</key> - </option> - <option> - <name>Internal</name> - <key></key> - </option> - </param> - <param> - <name>Subdev Spec</name> - <key>sd_spec</key> - <value></value> - <type>string</type> - <hide> - \#if \$sd_spec() - none - \#else - part - \#end if - </hide> - </param> - <param> - <name>Samp Rate (Sps)</name> - <key>samp_rate</key> - <value>samp_rate</value> - <type>real</type> - </param> - $params - <check>$max_nchan >= \$nchan</check> - <check>\$nchan > 0</check> - <check>(len((\$sd_spec).split()) or 1) == \$nchan</check> - <$sourk> - <name>$direction</name> - <type>\$type</type> - <vlen>\$type.vlen</vlen> - <nports>\$nchan</nports> - </$sourk> - <doc> -The UHD Single USRP $sourk.title() Block: - -Device Address: -The device address is a delimited string used to locate UHD devices on your system. \\ -If left blank, the first UHD device found will be used. \\ -Use the device address to specify a specific device. -USRP2 Example: addr=192.168.10.2 -USRP1 Example: serial=12345678 - -Subdevice specification: -Select the subdevice or subdevices for each channel using a markup string. \\ -The markup string consists of a list of dboard_slot:subdev_name pairs (one pair per channel). \\ -If left blank, the UHD will try to select the first subdevice on your system. \\ -See the application notes for further details. -Single channel example: A:AB -Dual channel example: A:AB B:0 - -Sample rate: -The sample rate is the number of samples per second input by this block. \\ -The UHD device driver will try its best to match the requested sample rate. \\ -If the requested rate is not possible, the UHD block will print an error at runtime. - -Center frequency: -The center frequency is the overall frequency of the RF chain. \\ -For greater control of how the UHD tunes elements in the RF chain, \\ -pass a tune_request object rather than a simple target frequency. -Tuning with an LO offset example: uhd.tune_request(freq, lo_off) - -Antenna: -For subdevices with only one antenna, this may be left blank. \\ -Otherwise, the user should specify one of the possible antenna choices. \\ -See the daughterboard application notes for the possible antenna choices. - -Bandwidth: -To use the default bandwidth filter setting, this should be zero. \\ -Only certain subdevices have configurable bandwidth filters. \\ -See the daughterboard application notes for possible configurations. - </doc> -</block> -""" - -PARAMS_TMPL = """ - <param> - <name>Ch$(n): Center Freq (Hz)</name> - <key>center_freq$(n)</key> - <value>0</value> - <type>real</type> - <hide>\#if \$nchan() > $n then 'none' else 'all'#</hide> - </param> - <param> - <name>Ch$(n): Gain (dB)</name> - <key>gain$(n)</key> - <value>0</value> - <type>real</type> - <hide>\#if \$nchan() > $n then 'none' else 'all'#</hide> - </param> - <param> - <name>Ch$(n): Antenna</name> - <key>ant$(n)</key> - <value></value> - <type>string</type> - <hide> - \#if not \$nchan() > $n - all - \#elif \$ant$(n)() - none - \#else - part - \#end if - </hide> - </param> - <param> - <name>Ch$(n): Bandwidth (Hz)</name> - <key>bw$(n)</key> - <value>0</value> - <type>real</type> - <hide> - \#if not \$nchan() > $n - all - \#elif \$bw$(n)() - none - \#else - part - \#end if - </hide> - </param> -""" - -def parse_tmpl(_tmpl, **kwargs): - from Cheetah import Template - return str(Template.Template(_tmpl, kwargs)) - -max_num_channels = 4 - -if __name__ == '__main__': - import sys - for file in sys.argv[1:]: - if 'source' in file: - sourk = 'source' - direction = 'out' - elif 'sink' in file: - sourk = 'sink' - direction = 'in' - else: raise Exception, 'is %s a source or sink?'%file - - params = ''.join([parse_tmpl(PARAMS_TMPL, n=n) for n in range(max_num_channels)]) - open(file, 'w').write(parse_tmpl(MAIN_TMPL, - max_nchan=max_num_channels, - params=params, - sourk=sourk, - direction=direction, - )) diff --git a/gr-uhd/grc/gen_uhd_multi_usrp_blocks_xml.py b/gr-uhd/grc/gen_uhd_usrp_blocks.py index fc44501deb..ec46334273 100755..100644 --- a/gr-uhd/grc/gen_uhd_multi_usrp_blocks_xml.py +++ b/gr-uhd/grc/gen_uhd_usrp_blocks.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python """ Copyright 2010-2011 Free Software Foundation, Inc. @@ -22,16 +21,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA MAIN_TMPL = """\ <?xml version="1.0"?> <block> - <name>UHD: Multi USRP $sourk.title()</name> - <key>uhd_multi_usrp_$(sourk)</key> + <name>UHD: USRP $sourk.title()</name> + <key>uhd_usrp_$(sourk)</key> <import>from gnuradio import uhd</import> - <make>uhd.multi_usrp_$(sourk)( + <make>uhd.usrp_$(sourk)( device_addr=\$dev_addr, io_type=uhd.io_type.\$type.type, num_channels=\$nchan, ) -\#if \$sync() +\#if \$ref_clk() self.\$(id).set_clock_config(uhd.clock_config.external(), uhd.ALL_MBOARDS); +\#end if +\#if \$sync() self.\$(id).set_time_unknown_pps(uhd.time_spec()) \#end if #for $m in range($max_mboards) @@ -80,7 +81,7 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) <param> <name>Device Addr</name> <key>dev_addr</key> - <value>addr0=192.168.10.2, addr1=192.168.10.3</value> + <value></value> <type>string</type> <hide> \#if \$dev_addr() @@ -91,6 +92,21 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) </hide> </param> <param> + <name>Ref Clock</name> + <key>ref_clk</key> + <value></value> + <type>enum</type> + <hide>\#if \$ref_clk() then 'none' else 'part'#</hide> + <option> + <name>External</name> + <key>ext</key> + </option> + <option> + <name>Internal</name> + <key></key> + </option> + </param> + <param> <name>Sync</name> <key>sync</key> <value>sync</value> @@ -108,7 +124,7 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) <param> <name>Num Mboards</name> <key>num_mboards</key> - <value>2</value> + <value>1</value> <type>int</type> #for $m in range(1, $max_mboards+1) <option> @@ -165,15 +181,18 @@ self.\$(id).set_bandwidth(\$bw$(n), $n) <nports>\$nchan</nports> </$sourk> <doc> -The UHD Multi USRP $sourk.title() Block: +The UHD USRP $sourk.title() Block: Device Address: The device address is a delimited string used to locate UHD devices on your system. \\ -Use the device address to specify a list of devices. +If left blank, the first UHD device found will be used. \\ +Use the device address to specify a specific device or list of devices. +USRP1 Example: serial=12345678 +USRP2 Example: addr=192.168.10.2 USRP2 Example: addr0=192.168.10.2, addr1=192.168.10.3 Num Motherboards: -Selects the number of USRP motherboards in this multi-USRP configuration. +Selects the number of USRP motherboards in this device configuration. Subdevice specification: Each motherboard should have its own subdevice specification \\ diff --git a/gr-uhd/grc/uhd_block_tree.xml b/gr-uhd/grc/uhd_block_tree.xml index f5d42b567d..8a9f62f7cb 100644 --- a/gr-uhd/grc/uhd_block_tree.xml +++ b/gr-uhd/grc/uhd_block_tree.xml @@ -8,9 +8,7 @@ <name></name> <!-- Blank for Root Name --> <cat> <name>UHD</name> - <block>uhd_single_usrp_source</block> - <block>uhd_single_usrp_sink</block> - <block>uhd_multi_usrp_source</block> - <block>uhd_multi_usrp_sink</block> + <block>uhd_usrp_source</block> + <block>uhd_usrp_sink</block> </cat> </cat> diff --git a/gr-uhd/grc/uhd_usrp_sink.xml b/gr-uhd/grc/uhd_usrp_sink.xml new file mode 100644 index 0000000000..219504ecd4 --- /dev/null +++ b/gr-uhd/grc/uhd_usrp_sink.xml @@ -0,0 +1,1255 @@ +<?xml version="1.0"?> +<block> + <name>UHD: USRP Sink</name> + <key>uhd_usrp_sink</key> + <import>from gnuradio import uhd</import> + <make>uhd.multi_usrp_sink( + device_addr=$dev_addr, + io_type=uhd.io_type.$type.type, + num_channels=$nchan, +) +#if $ref_clk() +self.$(id).set_clock_config(uhd.clock_config.external(), uhd.ALL_MBOARDS); +#end if +#if $sync() +self.$(id).set_time_unknown_pps(uhd.time_spec()) +#end if +#if $num_mboards() > 0 and $sd_spec0() +self.$(id).set_subdev_spec($sd_spec0, 0) +#end if +#if $num_mboards() > 1 and $sd_spec1() +self.$(id).set_subdev_spec($sd_spec1, 1) +#end if +#if $num_mboards() > 2 and $sd_spec2() +self.$(id).set_subdev_spec($sd_spec2, 2) +#end if +#if $num_mboards() > 3 and $sd_spec3() +self.$(id).set_subdev_spec($sd_spec3, 3) +#end if +self.$(id).set_samp_rate($samp_rate) +#if $nchan() > 0 +self.$(id).set_center_freq($center_freq0, 0) +self.$(id).set_gain($gain0, 0) + #if $ant0() +self.$(id).set_antenna($ant0, 0) + #end if + #if $bw0() +self.$(id).set_bandwidth($bw0, 0) + #end if +#end if +#if $nchan() > 1 +self.$(id).set_center_freq($center_freq1, 1) +self.$(id).set_gain($gain1, 1) + #if $ant1() +self.$(id).set_antenna($ant1, 1) + #end if + #if $bw1() +self.$(id).set_bandwidth($bw1, 1) + #end if +#end if +#if $nchan() > 2 +self.$(id).set_center_freq($center_freq2, 2) +self.$(id).set_gain($gain2, 2) + #if $ant2() +self.$(id).set_antenna($ant2, 2) + #end if + #if $bw2() +self.$(id).set_bandwidth($bw2, 2) + #end if +#end if +#if $nchan() > 3 +self.$(id).set_center_freq($center_freq3, 3) +self.$(id).set_gain($gain3, 3) + #if $ant3() +self.$(id).set_antenna($ant3, 3) + #end if + #if $bw3() +self.$(id).set_bandwidth($bw3, 3) + #end if +#end if +#if $nchan() > 4 +self.$(id).set_center_freq($center_freq4, 4) +self.$(id).set_gain($gain4, 4) + #if $ant4() +self.$(id).set_antenna($ant4, 4) + #end if + #if $bw4() +self.$(id).set_bandwidth($bw4, 4) + #end if +#end if +#if $nchan() > 5 +self.$(id).set_center_freq($center_freq5, 5) +self.$(id).set_gain($gain5, 5) + #if $ant5() +self.$(id).set_antenna($ant5, 5) + #end if + #if $bw5() +self.$(id).set_bandwidth($bw5, 5) + #end if +#end if +#if $nchan() > 6 +self.$(id).set_center_freq($center_freq6, 6) +self.$(id).set_gain($gain6, 6) + #if $ant6() +self.$(id).set_antenna($ant6, 6) + #end if + #if $bw6() +self.$(id).set_bandwidth($bw6, 6) + #end if +#end if +#if $nchan() > 7 +self.$(id).set_center_freq($center_freq7, 7) +self.$(id).set_gain($gain7, 7) + #if $ant7() +self.$(id).set_antenna($ant7, 7) + #end if + #if $bw7() +self.$(id).set_bandwidth($bw7, 7) + #end if +#end if +#if $nchan() > 8 +self.$(id).set_center_freq($center_freq8, 8) +self.$(id).set_gain($gain8, 8) + #if $ant8() +self.$(id).set_antenna($ant8, 8) + #end if + #if $bw8() +self.$(id).set_bandwidth($bw8, 8) + #end if +#end if +#if $nchan() > 9 +self.$(id).set_center_freq($center_freq9, 9) +self.$(id).set_gain($gain9, 9) + #if $ant9() +self.$(id).set_antenna($ant9, 9) + #end if + #if $bw9() +self.$(id).set_bandwidth($bw9, 9) + #end if +#end if +#if $nchan() > 10 +self.$(id).set_center_freq($center_freq10, 10) +self.$(id).set_gain($gain10, 10) + #if $ant10() +self.$(id).set_antenna($ant10, 10) + #end if + #if $bw10() +self.$(id).set_bandwidth($bw10, 10) + #end if +#end if +#if $nchan() > 11 +self.$(id).set_center_freq($center_freq11, 11) +self.$(id).set_gain($gain11, 11) + #if $ant11() +self.$(id).set_antenna($ant11, 11) + #end if + #if $bw11() +self.$(id).set_bandwidth($bw11, 11) + #end if +#end if +#if $nchan() > 12 +self.$(id).set_center_freq($center_freq12, 12) +self.$(id).set_gain($gain12, 12) + #if $ant12() +self.$(id).set_antenna($ant12, 12) + #end if + #if $bw12() +self.$(id).set_bandwidth($bw12, 12) + #end if +#end if +#if $nchan() > 13 +self.$(id).set_center_freq($center_freq13, 13) +self.$(id).set_gain($gain13, 13) + #if $ant13() +self.$(id).set_antenna($ant13, 13) + #end if + #if $bw13() +self.$(id).set_bandwidth($bw13, 13) + #end if +#end if +#if $nchan() > 14 +self.$(id).set_center_freq($center_freq14, 14) +self.$(id).set_gain($gain14, 14) + #if $ant14() +self.$(id).set_antenna($ant14, 14) + #end if + #if $bw14() +self.$(id).set_bandwidth($bw14, 14) + #end if +#end if +#if $nchan() > 15 +self.$(id).set_center_freq($center_freq15, 15) +self.$(id).set_gain($gain15, 15) + #if $ant15() +self.$(id).set_antenna($ant15, 15) + #end if + #if $bw15() +self.$(id).set_bandwidth($bw15, 15) + #end if +#end if +</make> + <callback>set_samp_rate($samp_rate)</callback> + <callback>set_center_freq($center_freq0, 0)</callback> + <callback>set_gain($gain0, 0)</callback> + <callback>set_antenna($ant0, 0)</callback> + <callback>set_bandwidth($bw0, 0)</callback> + <callback>set_center_freq($center_freq1, 1)</callback> + <callback>set_gain($gain1, 1)</callback> + <callback>set_antenna($ant1, 1)</callback> + <callback>set_bandwidth($bw1, 1)</callback> + <callback>set_center_freq($center_freq2, 2)</callback> + <callback>set_gain($gain2, 2)</callback> + <callback>set_antenna($ant2, 2)</callback> + <callback>set_bandwidth($bw2, 2)</callback> + <callback>set_center_freq($center_freq3, 3)</callback> + <callback>set_gain($gain3, 3)</callback> + <callback>set_antenna($ant3, 3)</callback> + <callback>set_bandwidth($bw3, 3)</callback> + <callback>set_center_freq($center_freq4, 4)</callback> + <callback>set_gain($gain4, 4)</callback> + <callback>set_antenna($ant4, 4)</callback> + <callback>set_bandwidth($bw4, 4)</callback> + <callback>set_center_freq($center_freq5, 5)</callback> + <callback>set_gain($gain5, 5)</callback> + <callback>set_antenna($ant5, 5)</callback> + <callback>set_bandwidth($bw5, 5)</callback> + <callback>set_center_freq($center_freq6, 6)</callback> + <callback>set_gain($gain6, 6)</callback> + <callback>set_antenna($ant6, 6)</callback> + <callback>set_bandwidth($bw6, 6)</callback> + <callback>set_center_freq($center_freq7, 7)</callback> + <callback>set_gain($gain7, 7)</callback> + <callback>set_antenna($ant7, 7)</callback> + <callback>set_bandwidth($bw7, 7)</callback> + <callback>set_center_freq($center_freq8, 8)</callback> + <callback>set_gain($gain8, 8)</callback> + <callback>set_antenna($ant8, 8)</callback> + <callback>set_bandwidth($bw8, 8)</callback> + <callback>set_center_freq($center_freq9, 9)</callback> + <callback>set_gain($gain9, 9)</callback> + <callback>set_antenna($ant9, 9)</callback> + <callback>set_bandwidth($bw9, 9)</callback> + <callback>set_center_freq($center_freq10, 10)</callback> + <callback>set_gain($gain10, 10)</callback> + <callback>set_antenna($ant10, 10)</callback> + <callback>set_bandwidth($bw10, 10)</callback> + <callback>set_center_freq($center_freq11, 11)</callback> + <callback>set_gain($gain11, 11)</callback> + <callback>set_antenna($ant11, 11)</callback> + <callback>set_bandwidth($bw11, 11)</callback> + <callback>set_center_freq($center_freq12, 12)</callback> + <callback>set_gain($gain12, 12)</callback> + <callback>set_antenna($ant12, 12)</callback> + <callback>set_bandwidth($bw12, 12)</callback> + <callback>set_center_freq($center_freq13, 13)</callback> + <callback>set_gain($gain13, 13)</callback> + <callback>set_antenna($ant13, 13)</callback> + <callback>set_bandwidth($bw13, 13)</callback> + <callback>set_center_freq($center_freq14, 14)</callback> + <callback>set_gain($gain14, 14)</callback> + <callback>set_antenna($ant14, 14)</callback> + <callback>set_bandwidth($bw14, 14)</callback> + <callback>set_center_freq($center_freq15, 15)</callback> + <callback>set_gain($gain15, 15)</callback> + <callback>set_antenna($ant15, 15)</callback> + <callback>set_bandwidth($bw15, 15)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>type:COMPLEX_FLOAT32</opt> + <opt>vlen:1</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>type:COMPLEX_INT16</opt> + <opt>vlen:2</opt> + </option> + </param> + <param> + <name>Device Addr</name> + <key>dev_addr</key> + <value></value> + <type>string</type> + <hide> + #if $dev_addr() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ref Clock</name> + <key>ref_clk</key> + <value></value> + <type>enum</type> + <hide>#if $ref_clk() then 'none' else 'part'#</hide> + <option> + <name>External</name> + <key>ext</key> + </option> + <option> + <name>Internal</name> + <key></key> + </option> + </param> + <param> + <name>Sync</name> + <key>sync</key> + <value>sync</value> + <type>enum</type> + <hide>#if $sync() then 'none' else 'part'#</hide> + <option> + <name>unknown PPS</name> + <key>sync</key> + </option> + <option> + <name>don't sync</name> + <key></key> + </option> + </param> + <param> + <name>Num Mboards</name> + <key>num_mboards</key> + <value>1</value> + <type>int</type> + <option> + <name>1</name> + <key>1</key> + </option> + <option> + <name>2</name> + <key>2</key> + </option> + <option> + <name>3</name> + <key>3</key> + </option> + <option> + <name>4</name> + <key>4</key> + </option> + </param> + <param> + <name>Mb0: Subdev Spec</name> + <key>sd_spec0</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 0 + all + #elif $sd_spec0() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb1: Subdev Spec</name> + <key>sd_spec1</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 1 + all + #elif $sd_spec1() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb2: Subdev Spec</name> + <key>sd_spec2</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 2 + all + #elif $sd_spec2() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb3: Subdev Spec</name> + <key>sd_spec3</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 3 + all + #elif $sd_spec3() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Num Channels</name> + <key>nchan</key> + <value>2</value> + <type>int</type> + <option> + <name>1</name> + <key>1</key> + </option> + <option> + <name>2</name> + <key>2</key> + </option> + <option> + <name>3</name> + <key>3</key> + </option> + <option> + <name>4</name> + <key>4</key> + </option> + <option> + <name>5</name> + <key>5</key> + </option> + <option> + <name>6</name> + <key>6</key> + </option> + <option> + <name>7</name> + <key>7</key> + </option> + <option> + <name>8</name> + <key>8</key> + </option> + <option> + <name>9</name> + <key>9</key> + </option> + <option> + <name>10</name> + <key>10</key> + </option> + <option> + <name>11</name> + <key>11</key> + </option> + <option> + <name>12</name> + <key>12</key> + </option> + <option> + <name>13</name> + <key>13</key> + </option> + <option> + <name>14</name> + <key>14</key> + </option> + <option> + <name>15</name> + <key>15</key> + </option> + <option> + <name>16</name> + <key>16</key> + </option> + </param> + <param> + <name>Samp Rate (Sps)</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + + <param> + <name>Ch0: Center Freq (Hz)</name> + <key>center_freq0</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 0 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch0: Gain (dB)</name> + <key>gain0</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 0 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch0: Antenna</name> + <key>ant0</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 0 + all + #elif $ant0() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch0: Bandwidth (Hz)</name> + <key>bw0</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 0 + all + #elif $bw0() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch1: Center Freq (Hz)</name> + <key>center_freq1</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 1 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch1: Gain (dB)</name> + <key>gain1</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 1 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch1: Antenna</name> + <key>ant1</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 1 + all + #elif $ant1() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch1: Bandwidth (Hz)</name> + <key>bw1</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 1 + all + #elif $bw1() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch2: Center Freq (Hz)</name> + <key>center_freq2</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 2 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch2: Gain (dB)</name> + <key>gain2</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 2 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch2: Antenna</name> + <key>ant2</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 2 + all + #elif $ant2() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch2: Bandwidth (Hz)</name> + <key>bw2</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 2 + all + #elif $bw2() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch3: Center Freq (Hz)</name> + <key>center_freq3</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 3 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch3: Gain (dB)</name> + <key>gain3</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 3 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch3: Antenna</name> + <key>ant3</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 3 + all + #elif $ant3() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch3: Bandwidth (Hz)</name> + <key>bw3</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 3 + all + #elif $bw3() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch4: Center Freq (Hz)</name> + <key>center_freq4</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 4 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch4: Gain (dB)</name> + <key>gain4</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 4 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch4: Antenna</name> + <key>ant4</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 4 + all + #elif $ant4() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch4: Bandwidth (Hz)</name> + <key>bw4</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 4 + all + #elif $bw4() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch5: Center Freq (Hz)</name> + <key>center_freq5</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 5 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch5: Gain (dB)</name> + <key>gain5</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 5 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch5: Antenna</name> + <key>ant5</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 5 + all + #elif $ant5() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch5: Bandwidth (Hz)</name> + <key>bw5</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 5 + all + #elif $bw5() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch6: Center Freq (Hz)</name> + <key>center_freq6</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 6 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch6: Gain (dB)</name> + <key>gain6</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 6 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch6: Antenna</name> + <key>ant6</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 6 + all + #elif $ant6() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch6: Bandwidth (Hz)</name> + <key>bw6</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 6 + all + #elif $bw6() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch7: Center Freq (Hz)</name> + <key>center_freq7</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 7 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch7: Gain (dB)</name> + <key>gain7</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 7 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch7: Antenna</name> + <key>ant7</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 7 + all + #elif $ant7() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch7: Bandwidth (Hz)</name> + <key>bw7</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 7 + all + #elif $bw7() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch8: Center Freq (Hz)</name> + <key>center_freq8</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 8 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch8: Gain (dB)</name> + <key>gain8</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 8 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch8: Antenna</name> + <key>ant8</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 8 + all + #elif $ant8() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch8: Bandwidth (Hz)</name> + <key>bw8</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 8 + all + #elif $bw8() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch9: Center Freq (Hz)</name> + <key>center_freq9</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 9 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch9: Gain (dB)</name> + <key>gain9</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 9 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch9: Antenna</name> + <key>ant9</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 9 + all + #elif $ant9() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch9: Bandwidth (Hz)</name> + <key>bw9</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 9 + all + #elif $bw9() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch10: Center Freq (Hz)</name> + <key>center_freq10</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 10 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch10: Gain (dB)</name> + <key>gain10</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 10 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch10: Antenna</name> + <key>ant10</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 10 + all + #elif $ant10() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch10: Bandwidth (Hz)</name> + <key>bw10</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 10 + all + #elif $bw10() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch11: Center Freq (Hz)</name> + <key>center_freq11</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 11 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch11: Gain (dB)</name> + <key>gain11</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 11 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch11: Antenna</name> + <key>ant11</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 11 + all + #elif $ant11() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch11: Bandwidth (Hz)</name> + <key>bw11</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 11 + all + #elif $bw11() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch12: Center Freq (Hz)</name> + <key>center_freq12</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 12 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch12: Gain (dB)</name> + <key>gain12</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 12 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch12: Antenna</name> + <key>ant12</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 12 + all + #elif $ant12() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch12: Bandwidth (Hz)</name> + <key>bw12</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 12 + all + #elif $bw12() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch13: Center Freq (Hz)</name> + <key>center_freq13</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 13 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch13: Gain (dB)</name> + <key>gain13</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 13 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch13: Antenna</name> + <key>ant13</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 13 + all + #elif $ant13() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch13: Bandwidth (Hz)</name> + <key>bw13</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 13 + all + #elif $bw13() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch14: Center Freq (Hz)</name> + <key>center_freq14</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 14 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch14: Gain (dB)</name> + <key>gain14</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 14 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch14: Antenna</name> + <key>ant14</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 14 + all + #elif $ant14() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch14: Bandwidth (Hz)</name> + <key>bw14</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 14 + all + #elif $bw14() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch15: Center Freq (Hz)</name> + <key>center_freq15</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 15 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch15: Gain (dB)</name> + <key>gain15</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 15 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch15: Antenna</name> + <key>ant15</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 15 + all + #elif $ant15() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch15: Bandwidth (Hz)</name> + <key>bw15</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 15 + all + #elif $bw15() + none + #else + part + #end if + </hide> + </param> + + <check>16 >= $nchan</check> + <check>$nchan > 0</check> + <check>4 >= $num_mboards</check> + <check>$num_mboards > 0</check> + <check>$nchan >= $num_mboards</check> + <sink> + <name>in</name> + <type>$type</type> + <vlen>$type.vlen</vlen> + <nports>$nchan</nports> + </sink> + <doc> +The UHD USRP Sink Block: + +Device Address: +The device address is a delimited string used to locate UHD devices on your system. \ +If left blank, the first UHD device found will be used. \ +Use the device address to specify a specific device or list of devices. +USRP1 Example: serial=12345678 +USRP2 Example: addr=192.168.10.2 +USRP2 Example: addr0=192.168.10.2, addr1=192.168.10.3 + +Num Motherboards: +Selects the number of USRP motherboards in this device configuration. + +Subdevice specification: +Each motherboard should have its own subdevice specification \ +and all subdevice specifications should be the same length. \ +Select the subdevice or subdevices for each channel using a markup string. \ +The markup string consists of a list of dboard_slot:subdev_name pairs (one pair per channel). \ +If left blank, the UHD will try to select the first subdevice on your system. \ +See the application notes for further details. +Single channel example: :AB +Dual channel example: :A :B + +Num Channels: +Selects the total number of channels in this multi-USRP configuration. +Ex: 4 motherboards with 2 channels per board = 8 channels total + +Sample rate: +The sample rate is the number of samples per second input by this block. \ +The UHD device driver will try its best to match the requested sample rate. \ +If the requested rate is not possible, the UHD block will print an error at runtime. + +Center frequency: +The center frequency is the overall frequency of the RF chain. \ +For greater control of how the UHD tunes elements in the RF chain, \ +pass a tune_request object rather than a simple target frequency. +Tuning with an LO offset example: uhd.tune_request(freq, lo_off) + +Antenna: +For subdevices with only one antenna, this may be left blank. \ +Otherwise, the user should specify one of the possible antenna choices. \ +See the daughterboard application notes for the possible antenna choices. + +Bandwidth: +To use the default bandwidth filter setting, this should be zero. \ +Only certain subdevices have configurable bandwidth filters. \ +See the daughterboard application notes for possible configurations. + </doc> +</block> diff --git a/gr-uhd/grc/uhd_usrp_source.xml b/gr-uhd/grc/uhd_usrp_source.xml new file mode 100644 index 0000000000..d90bda9936 --- /dev/null +++ b/gr-uhd/grc/uhd_usrp_source.xml @@ -0,0 +1,1255 @@ +<?xml version="1.0"?> +<block> + <name>UHD: USRP Source</name> + <key>uhd_usrp_source</key> + <import>from gnuradio import uhd</import> + <make>uhd.multi_usrp_source( + device_addr=$dev_addr, + io_type=uhd.io_type.$type.type, + num_channels=$nchan, +) +#if $ref_clk() +self.$(id).set_clock_config(uhd.clock_config.external(), uhd.ALL_MBOARDS); +#end if +#if $sync() +self.$(id).set_time_unknown_pps(uhd.time_spec()) +#end if +#if $num_mboards() > 0 and $sd_spec0() +self.$(id).set_subdev_spec($sd_spec0, 0) +#end if +#if $num_mboards() > 1 and $sd_spec1() +self.$(id).set_subdev_spec($sd_spec1, 1) +#end if +#if $num_mboards() > 2 and $sd_spec2() +self.$(id).set_subdev_spec($sd_spec2, 2) +#end if +#if $num_mboards() > 3 and $sd_spec3() +self.$(id).set_subdev_spec($sd_spec3, 3) +#end if +self.$(id).set_samp_rate($samp_rate) +#if $nchan() > 0 +self.$(id).set_center_freq($center_freq0, 0) +self.$(id).set_gain($gain0, 0) + #if $ant0() +self.$(id).set_antenna($ant0, 0) + #end if + #if $bw0() +self.$(id).set_bandwidth($bw0, 0) + #end if +#end if +#if $nchan() > 1 +self.$(id).set_center_freq($center_freq1, 1) +self.$(id).set_gain($gain1, 1) + #if $ant1() +self.$(id).set_antenna($ant1, 1) + #end if + #if $bw1() +self.$(id).set_bandwidth($bw1, 1) + #end if +#end if +#if $nchan() > 2 +self.$(id).set_center_freq($center_freq2, 2) +self.$(id).set_gain($gain2, 2) + #if $ant2() +self.$(id).set_antenna($ant2, 2) + #end if + #if $bw2() +self.$(id).set_bandwidth($bw2, 2) + #end if +#end if +#if $nchan() > 3 +self.$(id).set_center_freq($center_freq3, 3) +self.$(id).set_gain($gain3, 3) + #if $ant3() +self.$(id).set_antenna($ant3, 3) + #end if + #if $bw3() +self.$(id).set_bandwidth($bw3, 3) + #end if +#end if +#if $nchan() > 4 +self.$(id).set_center_freq($center_freq4, 4) +self.$(id).set_gain($gain4, 4) + #if $ant4() +self.$(id).set_antenna($ant4, 4) + #end if + #if $bw4() +self.$(id).set_bandwidth($bw4, 4) + #end if +#end if +#if $nchan() > 5 +self.$(id).set_center_freq($center_freq5, 5) +self.$(id).set_gain($gain5, 5) + #if $ant5() +self.$(id).set_antenna($ant5, 5) + #end if + #if $bw5() +self.$(id).set_bandwidth($bw5, 5) + #end if +#end if +#if $nchan() > 6 +self.$(id).set_center_freq($center_freq6, 6) +self.$(id).set_gain($gain6, 6) + #if $ant6() +self.$(id).set_antenna($ant6, 6) + #end if + #if $bw6() +self.$(id).set_bandwidth($bw6, 6) + #end if +#end if +#if $nchan() > 7 +self.$(id).set_center_freq($center_freq7, 7) +self.$(id).set_gain($gain7, 7) + #if $ant7() +self.$(id).set_antenna($ant7, 7) + #end if + #if $bw7() +self.$(id).set_bandwidth($bw7, 7) + #end if +#end if +#if $nchan() > 8 +self.$(id).set_center_freq($center_freq8, 8) +self.$(id).set_gain($gain8, 8) + #if $ant8() +self.$(id).set_antenna($ant8, 8) + #end if + #if $bw8() +self.$(id).set_bandwidth($bw8, 8) + #end if +#end if +#if $nchan() > 9 +self.$(id).set_center_freq($center_freq9, 9) +self.$(id).set_gain($gain9, 9) + #if $ant9() +self.$(id).set_antenna($ant9, 9) + #end if + #if $bw9() +self.$(id).set_bandwidth($bw9, 9) + #end if +#end if +#if $nchan() > 10 +self.$(id).set_center_freq($center_freq10, 10) +self.$(id).set_gain($gain10, 10) + #if $ant10() +self.$(id).set_antenna($ant10, 10) + #end if + #if $bw10() +self.$(id).set_bandwidth($bw10, 10) + #end if +#end if +#if $nchan() > 11 +self.$(id).set_center_freq($center_freq11, 11) +self.$(id).set_gain($gain11, 11) + #if $ant11() +self.$(id).set_antenna($ant11, 11) + #end if + #if $bw11() +self.$(id).set_bandwidth($bw11, 11) + #end if +#end if +#if $nchan() > 12 +self.$(id).set_center_freq($center_freq12, 12) +self.$(id).set_gain($gain12, 12) + #if $ant12() +self.$(id).set_antenna($ant12, 12) + #end if + #if $bw12() +self.$(id).set_bandwidth($bw12, 12) + #end if +#end if +#if $nchan() > 13 +self.$(id).set_center_freq($center_freq13, 13) +self.$(id).set_gain($gain13, 13) + #if $ant13() +self.$(id).set_antenna($ant13, 13) + #end if + #if $bw13() +self.$(id).set_bandwidth($bw13, 13) + #end if +#end if +#if $nchan() > 14 +self.$(id).set_center_freq($center_freq14, 14) +self.$(id).set_gain($gain14, 14) + #if $ant14() +self.$(id).set_antenna($ant14, 14) + #end if + #if $bw14() +self.$(id).set_bandwidth($bw14, 14) + #end if +#end if +#if $nchan() > 15 +self.$(id).set_center_freq($center_freq15, 15) +self.$(id).set_gain($gain15, 15) + #if $ant15() +self.$(id).set_antenna($ant15, 15) + #end if + #if $bw15() +self.$(id).set_bandwidth($bw15, 15) + #end if +#end if +</make> + <callback>set_samp_rate($samp_rate)</callback> + <callback>set_center_freq($center_freq0, 0)</callback> + <callback>set_gain($gain0, 0)</callback> + <callback>set_antenna($ant0, 0)</callback> + <callback>set_bandwidth($bw0, 0)</callback> + <callback>set_center_freq($center_freq1, 1)</callback> + <callback>set_gain($gain1, 1)</callback> + <callback>set_antenna($ant1, 1)</callback> + <callback>set_bandwidth($bw1, 1)</callback> + <callback>set_center_freq($center_freq2, 2)</callback> + <callback>set_gain($gain2, 2)</callback> + <callback>set_antenna($ant2, 2)</callback> + <callback>set_bandwidth($bw2, 2)</callback> + <callback>set_center_freq($center_freq3, 3)</callback> + <callback>set_gain($gain3, 3)</callback> + <callback>set_antenna($ant3, 3)</callback> + <callback>set_bandwidth($bw3, 3)</callback> + <callback>set_center_freq($center_freq4, 4)</callback> + <callback>set_gain($gain4, 4)</callback> + <callback>set_antenna($ant4, 4)</callback> + <callback>set_bandwidth($bw4, 4)</callback> + <callback>set_center_freq($center_freq5, 5)</callback> + <callback>set_gain($gain5, 5)</callback> + <callback>set_antenna($ant5, 5)</callback> + <callback>set_bandwidth($bw5, 5)</callback> + <callback>set_center_freq($center_freq6, 6)</callback> + <callback>set_gain($gain6, 6)</callback> + <callback>set_antenna($ant6, 6)</callback> + <callback>set_bandwidth($bw6, 6)</callback> + <callback>set_center_freq($center_freq7, 7)</callback> + <callback>set_gain($gain7, 7)</callback> + <callback>set_antenna($ant7, 7)</callback> + <callback>set_bandwidth($bw7, 7)</callback> + <callback>set_center_freq($center_freq8, 8)</callback> + <callback>set_gain($gain8, 8)</callback> + <callback>set_antenna($ant8, 8)</callback> + <callback>set_bandwidth($bw8, 8)</callback> + <callback>set_center_freq($center_freq9, 9)</callback> + <callback>set_gain($gain9, 9)</callback> + <callback>set_antenna($ant9, 9)</callback> + <callback>set_bandwidth($bw9, 9)</callback> + <callback>set_center_freq($center_freq10, 10)</callback> + <callback>set_gain($gain10, 10)</callback> + <callback>set_antenna($ant10, 10)</callback> + <callback>set_bandwidth($bw10, 10)</callback> + <callback>set_center_freq($center_freq11, 11)</callback> + <callback>set_gain($gain11, 11)</callback> + <callback>set_antenna($ant11, 11)</callback> + <callback>set_bandwidth($bw11, 11)</callback> + <callback>set_center_freq($center_freq12, 12)</callback> + <callback>set_gain($gain12, 12)</callback> + <callback>set_antenna($ant12, 12)</callback> + <callback>set_bandwidth($bw12, 12)</callback> + <callback>set_center_freq($center_freq13, 13)</callback> + <callback>set_gain($gain13, 13)</callback> + <callback>set_antenna($ant13, 13)</callback> + <callback>set_bandwidth($bw13, 13)</callback> + <callback>set_center_freq($center_freq14, 14)</callback> + <callback>set_gain($gain14, 14)</callback> + <callback>set_antenna($ant14, 14)</callback> + <callback>set_bandwidth($bw14, 14)</callback> + <callback>set_center_freq($center_freq15, 15)</callback> + <callback>set_gain($gain15, 15)</callback> + <callback>set_antenna($ant15, 15)</callback> + <callback>set_bandwidth($bw15, 15)</callback> + <param> + <name>Input Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>type:COMPLEX_FLOAT32</opt> + <opt>vlen:1</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>type:COMPLEX_INT16</opt> + <opt>vlen:2</opt> + </option> + </param> + <param> + <name>Device Addr</name> + <key>dev_addr</key> + <value></value> + <type>string</type> + <hide> + #if $dev_addr() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ref Clock</name> + <key>ref_clk</key> + <value></value> + <type>enum</type> + <hide>#if $ref_clk() then 'none' else 'part'#</hide> + <option> + <name>External</name> + <key>ext</key> + </option> + <option> + <name>Internal</name> + <key></key> + </option> + </param> + <param> + <name>Sync</name> + <key>sync</key> + <value>sync</value> + <type>enum</type> + <hide>#if $sync() then 'none' else 'part'#</hide> + <option> + <name>unknown PPS</name> + <key>sync</key> + </option> + <option> + <name>don't sync</name> + <key></key> + </option> + </param> + <param> + <name>Num Mboards</name> + <key>num_mboards</key> + <value>1</value> + <type>int</type> + <option> + <name>1</name> + <key>1</key> + </option> + <option> + <name>2</name> + <key>2</key> + </option> + <option> + <name>3</name> + <key>3</key> + </option> + <option> + <name>4</name> + <key>4</key> + </option> + </param> + <param> + <name>Mb0: Subdev Spec</name> + <key>sd_spec0</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 0 + all + #elif $sd_spec0() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb1: Subdev Spec</name> + <key>sd_spec1</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 1 + all + #elif $sd_spec1() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb2: Subdev Spec</name> + <key>sd_spec2</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 2 + all + #elif $sd_spec2() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Mb3: Subdev Spec</name> + <key>sd_spec3</key> + <value></value> + <type>string</type> + <hide> + #if not $num_mboards() > 3 + all + #elif $sd_spec3() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Num Channels</name> + <key>nchan</key> + <value>2</value> + <type>int</type> + <option> + <name>1</name> + <key>1</key> + </option> + <option> + <name>2</name> + <key>2</key> + </option> + <option> + <name>3</name> + <key>3</key> + </option> + <option> + <name>4</name> + <key>4</key> + </option> + <option> + <name>5</name> + <key>5</key> + </option> + <option> + <name>6</name> + <key>6</key> + </option> + <option> + <name>7</name> + <key>7</key> + </option> + <option> + <name>8</name> + <key>8</key> + </option> + <option> + <name>9</name> + <key>9</key> + </option> + <option> + <name>10</name> + <key>10</key> + </option> + <option> + <name>11</name> + <key>11</key> + </option> + <option> + <name>12</name> + <key>12</key> + </option> + <option> + <name>13</name> + <key>13</key> + </option> + <option> + <name>14</name> + <key>14</key> + </option> + <option> + <name>15</name> + <key>15</key> + </option> + <option> + <name>16</name> + <key>16</key> + </option> + </param> + <param> + <name>Samp Rate (Sps)</name> + <key>samp_rate</key> + <value>samp_rate</value> + <type>real</type> + </param> + + <param> + <name>Ch0: Center Freq (Hz)</name> + <key>center_freq0</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 0 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch0: Gain (dB)</name> + <key>gain0</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 0 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch0: Antenna</name> + <key>ant0</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 0 + all + #elif $ant0() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch0: Bandwidth (Hz)</name> + <key>bw0</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 0 + all + #elif $bw0() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch1: Center Freq (Hz)</name> + <key>center_freq1</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 1 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch1: Gain (dB)</name> + <key>gain1</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 1 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch1: Antenna</name> + <key>ant1</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 1 + all + #elif $ant1() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch1: Bandwidth (Hz)</name> + <key>bw1</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 1 + all + #elif $bw1() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch2: Center Freq (Hz)</name> + <key>center_freq2</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 2 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch2: Gain (dB)</name> + <key>gain2</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 2 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch2: Antenna</name> + <key>ant2</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 2 + all + #elif $ant2() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch2: Bandwidth (Hz)</name> + <key>bw2</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 2 + all + #elif $bw2() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch3: Center Freq (Hz)</name> + <key>center_freq3</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 3 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch3: Gain (dB)</name> + <key>gain3</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 3 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch3: Antenna</name> + <key>ant3</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 3 + all + #elif $ant3() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch3: Bandwidth (Hz)</name> + <key>bw3</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 3 + all + #elif $bw3() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch4: Center Freq (Hz)</name> + <key>center_freq4</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 4 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch4: Gain (dB)</name> + <key>gain4</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 4 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch4: Antenna</name> + <key>ant4</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 4 + all + #elif $ant4() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch4: Bandwidth (Hz)</name> + <key>bw4</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 4 + all + #elif $bw4() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch5: Center Freq (Hz)</name> + <key>center_freq5</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 5 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch5: Gain (dB)</name> + <key>gain5</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 5 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch5: Antenna</name> + <key>ant5</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 5 + all + #elif $ant5() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch5: Bandwidth (Hz)</name> + <key>bw5</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 5 + all + #elif $bw5() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch6: Center Freq (Hz)</name> + <key>center_freq6</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 6 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch6: Gain (dB)</name> + <key>gain6</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 6 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch6: Antenna</name> + <key>ant6</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 6 + all + #elif $ant6() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch6: Bandwidth (Hz)</name> + <key>bw6</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 6 + all + #elif $bw6() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch7: Center Freq (Hz)</name> + <key>center_freq7</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 7 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch7: Gain (dB)</name> + <key>gain7</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 7 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch7: Antenna</name> + <key>ant7</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 7 + all + #elif $ant7() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch7: Bandwidth (Hz)</name> + <key>bw7</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 7 + all + #elif $bw7() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch8: Center Freq (Hz)</name> + <key>center_freq8</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 8 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch8: Gain (dB)</name> + <key>gain8</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 8 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch8: Antenna</name> + <key>ant8</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 8 + all + #elif $ant8() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch8: Bandwidth (Hz)</name> + <key>bw8</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 8 + all + #elif $bw8() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch9: Center Freq (Hz)</name> + <key>center_freq9</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 9 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch9: Gain (dB)</name> + <key>gain9</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 9 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch9: Antenna</name> + <key>ant9</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 9 + all + #elif $ant9() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch9: Bandwidth (Hz)</name> + <key>bw9</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 9 + all + #elif $bw9() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch10: Center Freq (Hz)</name> + <key>center_freq10</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 10 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch10: Gain (dB)</name> + <key>gain10</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 10 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch10: Antenna</name> + <key>ant10</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 10 + all + #elif $ant10() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch10: Bandwidth (Hz)</name> + <key>bw10</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 10 + all + #elif $bw10() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch11: Center Freq (Hz)</name> + <key>center_freq11</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 11 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch11: Gain (dB)</name> + <key>gain11</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 11 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch11: Antenna</name> + <key>ant11</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 11 + all + #elif $ant11() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch11: Bandwidth (Hz)</name> + <key>bw11</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 11 + all + #elif $bw11() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch12: Center Freq (Hz)</name> + <key>center_freq12</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 12 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch12: Gain (dB)</name> + <key>gain12</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 12 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch12: Antenna</name> + <key>ant12</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 12 + all + #elif $ant12() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch12: Bandwidth (Hz)</name> + <key>bw12</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 12 + all + #elif $bw12() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch13: Center Freq (Hz)</name> + <key>center_freq13</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 13 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch13: Gain (dB)</name> + <key>gain13</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 13 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch13: Antenna</name> + <key>ant13</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 13 + all + #elif $ant13() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch13: Bandwidth (Hz)</name> + <key>bw13</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 13 + all + #elif $bw13() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch14: Center Freq (Hz)</name> + <key>center_freq14</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 14 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch14: Gain (dB)</name> + <key>gain14</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 14 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch14: Antenna</name> + <key>ant14</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 14 + all + #elif $ant14() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch14: Bandwidth (Hz)</name> + <key>bw14</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 14 + all + #elif $bw14() + none + #else + part + #end if + </hide> + </param> + + <param> + <name>Ch15: Center Freq (Hz)</name> + <key>center_freq15</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 15 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch15: Gain (dB)</name> + <key>gain15</key> + <value>0</value> + <type>real</type> + <hide>#if $nchan() > 15 then 'none' else 'all'#</hide> + </param> + <param> + <name>Ch15: Antenna</name> + <key>ant15</key> + <value></value> + <type>string</type> + <hide> + #if not $nchan() > 15 + all + #elif $ant15() + none + #else + part + #end if + </hide> + </param> + <param> + <name>Ch15: Bandwidth (Hz)</name> + <key>bw15</key> + <value>0</value> + <type>real</type> + <hide> + #if not $nchan() > 15 + all + #elif $bw15() + none + #else + part + #end if + </hide> + </param> + + <check>16 >= $nchan</check> + <check>$nchan > 0</check> + <check>4 >= $num_mboards</check> + <check>$num_mboards > 0</check> + <check>$nchan >= $num_mboards</check> + <source> + <name>out</name> + <type>$type</type> + <vlen>$type.vlen</vlen> + <nports>$nchan</nports> + </source> + <doc> +The UHD USRP Source Block: + +Device Address: +The device address is a delimited string used to locate UHD devices on your system. \ +If left blank, the first UHD device found will be used. \ +Use the device address to specify a specific device or list of devices. +USRP1 Example: serial=12345678 +USRP2 Example: addr=192.168.10.2 +USRP2 Example: addr0=192.168.10.2, addr1=192.168.10.3 + +Num Motherboards: +Selects the number of USRP motherboards in this device configuration. + +Subdevice specification: +Each motherboard should have its own subdevice specification \ +and all subdevice specifications should be the same length. \ +Select the subdevice or subdevices for each channel using a markup string. \ +The markup string consists of a list of dboard_slot:subdev_name pairs (one pair per channel). \ +If left blank, the UHD will try to select the first subdevice on your system. \ +See the application notes for further details. +Single channel example: :AB +Dual channel example: :A :B + +Num Channels: +Selects the total number of channels in this multi-USRP configuration. +Ex: 4 motherboards with 2 channels per board = 8 channels total + +Sample rate: +The sample rate is the number of samples per second input by this block. \ +The UHD device driver will try its best to match the requested sample rate. \ +If the requested rate is not possible, the UHD block will print an error at runtime. + +Center frequency: +The center frequency is the overall frequency of the RF chain. \ +For greater control of how the UHD tunes elements in the RF chain, \ +pass a tune_request object rather than a simple target frequency. +Tuning with an LO offset example: uhd.tune_request(freq, lo_off) + +Antenna: +For subdevices with only one antenna, this may be left blank. \ +Otherwise, the user should specify one of the possible antenna choices. \ +See the daughterboard application notes for the possible antenna choices. + +Bandwidth: +To use the default bandwidth filter setting, this should be zero. \ +Only certain subdevices have configurable bandwidth filters. \ +See the daughterboard application notes for possible configurations. + </doc> +</block> |