diff --git a/utils/gr-ctrlport-csv b/utils/gr-ctrlport-csv new file mode 100755 index 0000000..5fb1693 --- /dev/null +++ b/utils/gr-ctrlport-csv @@ -0,0 +1,79 @@ +#!/usr/bin/env python +# +# Copyright 2012 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio 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 3, or (at your option) +# any later version. +# +# GNU Radio 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 GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +import threading +import os, sys, time +from optparse import OptionParser + +import Ice +from gnuradio.ctrlport import GNURadio + + +class monitor_gui: + def __init__(self, host, port, options): + + locator = None + + # Extract options into a locator + locator = "{0} -t:{1} -h {2} -p {3}".format( + options.app, options.protocol, host, port) + + + # Ice/GRCP init + self.comm = Ice.initialize() + proxy = self.comm.stringToProxy(locator) + self.radio = GNURadio.ControlPortPrx.checkedCast(proxy) + self.updateKnobs() + + while(True): + self.updateKnobs() + self.printValues() + time.sleep(.5) + + + def updateKnobs(self): + self.knobs = self.radio.get([]) + + + def printValues(self): + for k in self.knobs.keys(): + (nb,k) = k.split("::", 2) + + keys = self.knobs.keys() + keys.sort() + for k in keys: + (nb,sk) = k.split("::", 2) + v = self.knobs[k].value + sv = str(v) + print(nb + " " + k + " " + sv) + + +if __name__ == "__main__": + parser = OptionParser() + parser.add_option("-P", "--protocol", type="string", default="tcp", + help="Type of protocol to use (usually tcp). [default=%default]") + parser.add_option("-a", "--app", type="string", default="gnuradio", + help="Name of application [default=%default]") + (options, args) = parser.parse_args() + + mg = monitor_gui(args[0], args[1], options) +