summaryrefslogtreecommitdiff
path: root/gr-uhd/apps/uhd_app.py
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2016-11-17 21:20:55 +0100
committerSebastian Koslowski <koslowski@kit.edu>2016-11-17 21:21:08 +0100
commit7f25c0120fc7bc6a6eeee87878cf387647d51614 (patch)
treeab510060a2c5625d00e7f19f4c7d699861b98cea /gr-uhd/apps/uhd_app.py
parente1acf2d27760d606cc7cba200aa380e885f2ffaf (diff)
parent1d50d70f0b990b909357a803881955623dea94d8 (diff)
Merge remote-tracking branch 'upstream/next' into gtk3
Diffstat (limited to 'gr-uhd/apps/uhd_app.py')
-rw-r--r--gr-uhd/apps/uhd_app.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/gr-uhd/apps/uhd_app.py b/gr-uhd/apps/uhd_app.py
index 652a9fbab6..8e377f0b4d 100644
--- a/gr-uhd/apps/uhd_app.py
+++ b/gr-uhd/apps/uhd_app.py
@@ -121,6 +121,20 @@ class UHDApp(object):
antennas = [antennas[0],] * len(args.channels)
return antennas
+ def normalize_subdev_sel(self, spec):
+ """
+ """
+ if spec is None:
+ return None
+ specs = [x.strip() for x in spec.split(",")]
+ if len(specs) == 1:
+ return spec
+ elif len(specs) != self.usrp.get_num_mboards():
+ raise ValueError("Invalid subdev setting for {n} mboards: {a}".format(
+ n=len(self.usrp.get_num_mboards()), a=spec
+ ))
+ return specs
+
def async_callback(self, msg):
"""
Call this when USRP async metadata needs printing.
@@ -151,9 +165,13 @@ class UHDApp(object):
)
)
# Set the subdevice spec:
+ args.spec = self.normalize_subdev_sel(args.spec)
if args.spec:
for mb_idx in xrange(self.usrp.get_num_mboards()):
- self.usrp.set_subdev_spec(args.spec, mb_idx)
+ if isinstance(args.spec, list):
+ self.usrp.set_subdev_spec(args.spec[mb_idx], mb_idx)
+ else:
+ self.usrp.set_subdev_spec(args.spec, mb_idx)
# Set the clock and/or time source:
if args.clock_source is not None:
for mb_idx in xrange(self.usrp.get_num_mboards()):
@@ -298,8 +316,8 @@ class UHDApp(object):
tx_or_rx = tx_or_rx.strip() + " "
group = parser.add_argument_group('USRP Arguments')
group.add_argument("-a", "--args", default="", help="UHD device address args")
- group.add_argument("--spec", help="Subdevice of UHD device where appropriate")
- group.add_argument("-A", "--antenna", help="Select {xx}Antenna(s) where appropriate".format(xx=tx_or_rx))
+ group.add_argument("--spec", help="Subdevice(s) of UHD device where appropriate. Use a comma-separated list to set different boards to different specs.")
+ group.add_argument("-A", "--antenna", help="Select {xx}antenna(s) where appropriate".format(xx=tx_or_rx))
group.add_argument("-s", "--samp-rate", type=eng_arg.eng_float, default=1e6,
help="Sample rate")
group.add_argument("-g", "--gain", type=eng_arg.eng_float, default=None,