Imported Upstream version 3.2.2
[debian/gnuradio] / gr-utils / src / python / lsusrp
1 #!/usr/bin/env python
2 #
3 # Copyright 2008 Free Software Foundation, Inc.
4
5 # This file is part of GNU Radio
6
7 # GNU Radio is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3, or (at your option)
10 # any later version.
11
12 # GNU Radio is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16
17 # You should have received a copy of the GNU General Public License
18 # along with GNU Radio; see the file COPYING.  If not, write to
19 # the Free Software Foundation, Inc., 51 Franklin Street,
20 # Boston, MA 02110-1301, USA.
21
22
23 MAX_USRPS = 8
24
25 from gnuradio import usrp
26 from optparse import OptionParser
27
28 def disp_usrp(which, serial=None):
29     u_source = usrp.source_c(which=which)
30     u_sink = usrp.sink_c(which=which)
31     u_serial = u_source.serial_number()
32     
33     if serial is not None:
34         if serial != u_serial:
35             raise ValueError
36         
37     print "USRP", which, "serial number", u_source.serial_number()
38     subdev_A_rx = usrp.selected_subdev(u_source, (0,0))
39     subdev_B_rx = usrp.selected_subdev(u_source, (1,0))
40     subdev_A_tx = usrp.selected_subdev(u_sink,   (0,0))
41     subdev_B_tx = usrp.selected_subdev(u_sink,   (1,0))
42     print "  RX d'board %s" % (subdev_A_rx.side_and_name(),)
43     print "  RX d'board %s" % (subdev_B_rx.side_and_name(),)
44     print "  TX d'board %s" % (subdev_A_tx.side_and_name(),)
45     print "  TX d'board %s" % (subdev_B_tx.side_and_name(),)
46
47 if __name__ == "__main__":
48     parser = OptionParser()
49     parser.add_option("-w", "--which", type="int", default=None,
50                       help="select which USRP (0, 1, ...) default is all found",
51                       metavar="NUM")
52     parser.add_option("-s", "--serial", default=None,
53                       help="select USRP by serial number",
54                       metavar="SER")
55     (options, args) = parser.parse_args()
56     if len(args) > 0:
57         print parser.print_help()
58         raise SystemExit, 1
59
60     if options.serial is not None and options.which is not None:
61        print "Use of --which or --serial is exclusive"
62        raise SystemExit, 1
63
64     if options.which is not None:
65         try:    
66             disp_usrp(options.which)
67         except:
68             print "USRP", options.which, "not found."
69     else:
70         for n in range(MAX_USRPS):
71             try:
72                 disp_usrp(n, options.serial)
73             except:
74                 pass
75