summaryrefslogtreecommitdiff
path: root/grc
diff options
context:
space:
mode:
Diffstat (limited to 'grc')
-rw-r--r--grc/data/platforms/python/blocks/usrp_dual_source_x.xml76
-rw-r--r--grc/data/platforms/python/blocks/usrp_simple_source_x.xml10
-rw-r--r--grc/src/grc_gnuradio/usrp/common.py13
-rw-r--r--grc/src/grc_gnuradio/usrp/dual_usrp.py12
4 files changed, 45 insertions, 66 deletions
diff --git a/grc/data/platforms/python/blocks/usrp_dual_source_x.xml b/grc/data/platforms/python/blocks/usrp_dual_source_x.xml
index c37ae877c..7d510f7be 100644
--- a/grc/data/platforms/python/blocks/usrp_dual_source_x.xml
+++ b/grc/data/platforms/python/blocks/usrp_dual_source_x.xml
@@ -8,7 +8,7 @@
<name>USRP Dual Source</name>
<key>usrp_dual_source_x</key>
<import>from grc_gnuradio import usrp as grc_usrp</import>
- <make>grc_usrp.dual_source_$(type.fcn)(which=$which, side_a='$rx_ant_a.side', rx_ant_a='$rx_ant_a.rx_ant', side_b='$rx_ant_b.side', rx_ant_b='$rx_ant_b.rx_ant')
+ <make>grc_usrp.dual_source_$(type.fcn)(which=$which, rx_ant_a='$rx_ant_a', rx_ant_b='$rx_ant_b')
#if $format.eval
self.$(id).set_format(width=$format.width, shift=$format.shift)
#end if
@@ -97,39 +97,29 @@ self.$(id).set_gain_b($gain_b)</make>
<key>rx_ant_a</key>
<type>enum</type>
<option>
- <name>Side A, RXA</name>
- <key>A_RXA</key>
- <opt>side:A</opt>
- <opt>rx_ant:RXA</opt>
+ <name>RXA</name>
+ <key>RXA</key>
<opt>flex:</opt>
</option>
<option>
- <name>Side A, RXB</name>
- <key>A_RXB</key>
- <opt>side:A</opt>
- <opt>rx_ant:RXB</opt>
+ <name>RXB</name>
+ <key>RXB</key>
<opt>flex:</opt>
</option>
<option>
- <name>Side A, TX/RX</name>
- <key>A_TXRX</key>
- <opt>side:A</opt>
- <opt>rx_ant:TX/RX</opt>
- <opt>flex:1</opt>
+ <name>RXAB</name>
+ <key>RXAB</key>
+ <opt>flex:</opt>
</option>
<option>
- <name>Side A, RX2</name>
- <key>A_RX2</key>
- <opt>side:A</opt>
- <opt>rx_ant:RX2</opt>
+ <name>TX/RX</name>
+ <key>TX/RX</key>
<opt>flex:1</opt>
</option>
<option>
- <name>Side B, RXA</name>
- <key>B_RXA</key>
- <opt>side:B</opt>
- <opt>rx_ant:RXA</opt>
- <opt>flex:</opt>
+ <name>RX2</name>
+ <key>RX2</key>
+ <opt>flex:1</opt>
</option>
</param>
<!--
@@ -142,42 +132,31 @@ self.$(id).set_gain_b($gain_b)</make>
<key>rx_ant_b</key>
<type>enum</type>
<option>
- <name>Side B, RXA</name>
- <key>B_RXA</key>
- <opt>side:B</opt>
- <opt>rx_ant:RXA</opt>
+ <name>RXA</name>
+ <key>RXA</key>
<opt>flex:</opt>
</option>
<option>
- <name>Side B, RXB</name>
- <key>B_RXB</key>
- <opt>side:B</opt>
- <opt>rx_ant:RXB</opt>
+ <name>RXB</name>
+ <key>RXB</key>
<opt>flex:</opt>
</option>
<option>
- <name>Side B, TX/RX</name>
- <key>B_TXRX</key>
- <opt>side:B</opt>
- <opt>rx_ant:TX/RX</opt>
- <opt>flex:1</opt>
+ <name>RXAB</name>
+ <key>RXAB</key>
+ <opt>flex:</opt>
</option>
<option>
- <name>Side B, RX2</name>
- <key>B_RX2</key>
- <opt>side:B</opt>
- <opt>rx_ant:RX2</opt>
+ <name>TX/RX</name>
+ <key>TX/RX</key>
<opt>flex:1</opt>
</option>
<option>
- <name>Side A, RXB</name>
- <key>A_RXB</key>
- <opt>side:A</opt>
- <opt>rx_ant:RXB</opt>
- <opt>flex:</opt>
+ <name>RX2</name>
+ <key>RX2</key>
+ <opt>flex:1</opt>
</option>
</param>
- <check>'$rx_ant_a' != '$rx_ant_b'</check>
<source>
<name>Aout</name>
<type>$type</type>
@@ -191,10 +170,7 @@ The USRP source outputs 64 Megasamples per second / decimation.
The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \
Flex RF boards use the "TX/RX" and "RX2" settings. \
-Basic RX and LFRX use the "RXA" and "RXB" settings. \
+Basic RX and LFRX use the "RXA", "RXB", and "RXAB" settings. \
All other boards use the "RXA" setting.
-
-Flex RF boards only: If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \
-By default, "Auto TR" is disabled.
</doc>
</block>
diff --git a/grc/data/platforms/python/blocks/usrp_simple_source_x.xml b/grc/data/platforms/python/blocks/usrp_simple_source_x.xml
index 3fe6566d9..6efe330d0 100644
--- a/grc/data/platforms/python/blocks/usrp_simple_source_x.xml
+++ b/grc/data/platforms/python/blocks/usrp_simple_source_x.xml
@@ -103,6 +103,11 @@ self.$(id).set_gain($gain)</make>
<opt>flex:</opt>
</option>
<option>
+ <name>RXAB</name>
+ <key>RXAB</key>
+ <opt>flex:</opt>
+ </option>
+ <option>
<name>TX/RX</name>
<key>TX/RX</key>
<opt>flex:1</opt>
@@ -137,12 +142,9 @@ The USRP source outputs 64 Megasamples per second / decimation.
The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \
Flex RF boards use the "TX/RX" and "RX2" settings. \
-Basic RX and LFRX use the "RXA" and "RXB" settings. \
+Basic RX and LFRX use the "RXA", "RXB", and "RXAB" settings. \
All other boards use the "RXA" setting.
-Flex RF boards only: If enabled, "Auto Transmit/Receive Switching" handles the preference for transmit packets vs receive packets. \
-By default, "Auto TR" is disabled.
-
With the format set to 8 bits and the halfband filters disabled, the USRP can acheive a decimation rate of 4. \
Disabling the halfband filters requires a special USRP firmware without halfband filters or TX paths. \
For this reason, the USRP cannot transmit with the halfband filters disabled.
diff --git a/grc/src/grc_gnuradio/usrp/common.py b/grc/src/grc_gnuradio/usrp/common.py
index 33eda351c..65c1e7e29 100644
--- a/grc/src/grc_gnuradio/usrp/common.py
+++ b/grc/src/grc_gnuradio/usrp/common.py
@@ -63,10 +63,13 @@ def to_spec(side, rx_ant='RXA'):
Convert the side to a spec number.
@param side A or B
@param rx_ant antenna type
- @return the spec (0/1, 0/1)
+ @return the spec (0/1, 0/1/2)
"""
- try: return (
- {'A': 0, 'B': 1}[side.upper()], #side spec is 0 for A, 1 for B
- rx_ant.upper() == 'RXB' and 1 or 0, #subdev spec is 1 for RXB
- )
+ #determine the side spec
+ try: side_spec = {'A': 0, 'B': 1}[side.upper()]
except: raise ValueError, 'Side A or B expected.'
+ #determine the subdevice spec
+ if rx_ant.upper() == 'RXB': subdev_spec = 1
+ elif rx_ant.upper() == 'RXAB': subdev_spec = 2
+ else: subdev_spec = 0
+ return (side_spec, subdev_spec)
diff --git a/grc/src/grc_gnuradio/usrp/dual_usrp.py b/grc/src/grc_gnuradio/usrp/dual_usrp.py
index dd1e4605e..47449ae78 100644
--- a/grc/src/grc_gnuradio/usrp/dual_usrp.py
+++ b/grc/src/grc_gnuradio/usrp/dual_usrp.py
@@ -27,13 +27,11 @@ from gnuradio import gr, usrp
class _dual_source(gr.hier_block2):
"""A dual usrp source of IO type short or complex."""
- def __init__(self, which, side_a='A', rx_ant_a='RXA', side_b='B', rx_ant_b='RXA'):
+ def __init__(self, which, rx_ant_a='RXA', rx_ant_b='RXA'):
"""
USRP dual source contructor.
@param which the unit number
- @param side_a A or B
@param rx_ant_a the antenna choice
- @param side_b A or B
@param rx_ant_b the antenna choice
"""
#initialize hier2 block
@@ -44,12 +42,12 @@ class _dual_source(gr.hier_block2):
)
#create usrp object
self._make_usrp(which=which, nchan=2)
- #get the mux for output A
- subdev_spec_a = common.to_spec(side_a, rx_ant_a)
+ #get the mux for side A
+ subdev_spec_a = common.to_spec('A', rx_ant_a)
self._subdev_a = usrp.selected_subdev(self._get_u(), subdev_spec_a)
mux_a = usrp.determine_rx_mux_value(self._get_u(), subdev_spec_a)
- #get the mux for output B
- subdev_spec_b = common.to_spec(side_b, rx_ant_b)
+ #get the mux for side B
+ subdev_spec_b = common.to_spec('B', rx_ant_b)
self._subdev_b = usrp.selected_subdev(self._get_u(), subdev_spec_b)
mux_b = usrp.determine_rx_mux_value(self._get_u(), subdev_spec_b)
#move the lower byte of the mux b into the second byte of the mux a