diff options
author | Martin Braun <martin.braun@ettus.com> | 2016-10-12 18:19:02 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2016-10-12 18:19:02 -0700 |
commit | 9f1b59586e7e8991d3648a3a2965d59bb32e6d6d (patch) | |
tree | 8186a52c4b4d98890cf8c00e6093efa9fbddac6f /gr-uhd | |
parent | ce354379fee28872ea103eafa9164e6fc1ea54a1 (diff) |
uhd: uhd_apps may now specify multiple subdev specs
Diffstat (limited to 'gr-uhd')
-rw-r--r-- | gr-uhd/apps/uhd_app.py | 24 |
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, |