[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r3416 - in gnuradio/branches/developers/jcorgan/ticket
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r3416 - in gnuradio/branches/developers/jcorgan/ticket-28: gnuradio-core/src/lib/runtime gnuradio-core/src/python/gnuradio/gr gnuradio-examples/python/audio gnuradio-examples/python/gmsk2 gr-trellis/src/lib usrp/host/apps |
Date: |
Fri, 25 Aug 2006 17:11:47 -0600 (MDT) |
Author: jcorgan
Date: 2006-08-25 17:11:47 -0600 (Fri, 25 Aug 2006)
New Revision: 3416
Added:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/audio/audio_fft.py
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.cc
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.h
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.i
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/qa_gr_buffer.cc
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/python/gnuradio/gr/flow_graph.py
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/gmsk2/tunnel.py
gnuradio/branches/developers/jcorgan/ticket-28/gr-trellis/src/lib/Makefile.am
gnuradio/branches/developers/jcorgan/ticket-28/usrp/host/apps/Makefile.am
Log:
Merged r3400:3414 from trunk into jcorgan/ticket-28.
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.cc
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.cc
2006-08-25 23:11:47 UTC (rev 3416)
@@ -179,11 +179,14 @@
}
gr_buffer_reader_sptr
-gr_buffer_add_reader (gr_buffer_sptr buf, int history)
+gr_buffer_add_reader (gr_buffer_sptr buf, int nzero_preload)
{
+ if (nzero_preload < 0)
+ throw std::invalid_argument("gr_buffer_add_reader: nzero_preload must be
>= 0");
+
gr_buffer_reader_sptr r (new gr_buffer_reader (buf,
buf->index_sub(buf->d_write_index,
- history-1)));
+
nzero_preload)));
buf->d_readers.push_back (r.get ());
return r;
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.h
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.h
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.h
2006-08-25 23:11:47 UTC (rev 3416)
@@ -73,7 +73,7 @@
friend class gr_buffer_reader;
friend gr_buffer_sptr gr_make_buffer (int nitems, size_t sizeof_item);
- friend gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
history);
+ friend gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload);
protected:
char *d_base; // base address of
buffer
@@ -129,8 +129,11 @@
};
-//! create a new gr_buffer_reader and attach it to buffer \p buf
-gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int history);
+/*!
+ * \brief create a new gr_buffer_reader and attach it to buffer \p buf
+ * \param nzero_preload -- number of zero items to "preload" into buffer.
+ */
+gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload);
//! returns # of gr_buffers currently allocated
long gr_buffer_ncurrently_allocated ();
@@ -179,7 +182,7 @@
private:
friend class gr_buffer;
- friend gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
history);
+ friend gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload);
gr_buffer_sptr d_buffer;
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.i
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.i
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/gr_buffer.i
2006-08-25 23:11:47 UTC (rev 3416)
@@ -43,7 +43,7 @@
%ignore gr_buffer_reader;
%rename(buffer_add_reader) gr_buffer_add_reader;
-gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int history);
+gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int
nzero_preload);
class gr_buffer_reader {
public:
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/qa_gr_buffer.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/qa_gr_buffer.cc
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/lib/runtime/qa_gr_buffer.cc
2006-08-25 23:11:47 UTC (rev 3416)
@@ -88,7 +88,7 @@
int read_counter = 0;
gr_buffer_sptr buf (gr_make_buffer (nitems, sizeof (int)));
- gr_buffer_reader_sptr r1 (gr_buffer_add_reader (buf, 1));
+ gr_buffer_reader_sptr r1 (gr_buffer_add_reader (buf, 0));
int sa;
@@ -163,7 +163,7 @@
int nitems = (64 * (1L << 10)) / sizeof (int); // 64K worth of ints
gr_buffer_sptr buf (gr_make_buffer (nitems, sizeof (int)));
- gr_buffer_reader_sptr r1 (gr_buffer_add_reader (buf, 1));
+ gr_buffer_reader_sptr r1 (gr_buffer_add_reader (buf, 0));
int read_counter = 0;
int write_counter = 0;
@@ -237,7 +237,7 @@
for (int i = 0; i < N; i++){
read_counter[i] = 0;
- reader[i] = gr_buffer_add_reader (buf, 1);
+ reader[i] = gr_buffer_add_reader (buf, 0);
}
for (int lc = 0; lc < 1000; lc++){
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/python/gnuradio/gr/flow_graph.py
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/python/gnuradio/gr/flow_graph.py
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-core/src/python/gnuradio/gr/flow_graph.py
2006-08-25 23:11:47 UTC (rev 3416)
@@ -151,7 +151,7 @@
upstream_block = e.src.block
upstream_port = e.src.port
upstream_buffer = upstream_block.detail().output(upstream_port)
- d.set_input(our_port, buffer_add_reader(upstream_buffer,
m.history()))
+ d.set_input(our_port, buffer_add_reader(upstream_buffer,
m.history()-1))
def topological_sort (self, all_v):
Copied:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/audio/audio_fft.py
(from rev 3414, gnuradio/trunk/gnuradio-examples/python/audio/audio_fft.py)
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/audio/audio_fft.py
(rev 0)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/audio/audio_fft.py
2006-08-25 23:11:47 UTC (rev 3416)
@@ -0,0 +1,137 @@
+#!/usr/bin/env python
+#
+# Copyright 2004,2005 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 2, 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+
+from gnuradio import gr, gru, audio
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from gnuradio.wxgui import stdgui, fftsink, waterfallsink, scopesink, form,
slider
+from optparse import OptionParser
+import wx
+import sys
+
+class app_flow_graph(stdgui.gui_flow_graph):
+ def __init__(self, frame, panel, vbox, argv):
+ stdgui.gui_flow_graph.__init__(self)
+
+ self.frame = frame
+ self.panel = panel
+
+ parser = OptionParser(option_class=eng_option)
+ parser.add_option("-W", "--waterfall", action="store_true",
default=False,
+ help="Enable waterfall display")
+ parser.add_option("-S", "--oscilloscope", action="store_true",
default=False,
+ help="Enable oscilloscope display")
+ parser.add_option("-I", "--audio-input", type="string", default="",
+ help="pcm input device name. E.g., hw:0,0 or
/dev/dsp")
+ parser.add_option("-r", "--sample-rate", type="eng_float",
default=48000,
+ help="set sample rate to RATE (48000)")
+
+ (options, args) = parser.parse_args()
+ sample_rate = int(options.sample_rate)
+
+ if len(args) != 0:
+ parser.print_help()
+ sys.exit(1)
+
+ self.show_debug_info = True
+
+ # build the graph
+ if options.waterfall:
+ self.scope = \
+ waterfallsink.waterfall_sink_f (self, panel, fft_size=1024,
sample_rate=sample_rate)
+ elif options.oscilloscope:
+ self.scope = scopesink.scope_sink_f(self, panel,
sample_rate=sample_rate)
+ else:
+ self.scope = fftsink.fft_sink_f (self, panel, fft_size=1024,
sample_rate=sample_rate, fft_rate=30)
+
+ self.src = audio.source (sample_rate, options.audio_input)
+
+ self.connect(self.src, self.scope)
+
+ self._build_gui(vbox)
+
+ # set initial values
+
+ def _set_status_msg(self, msg):
+ self.frame.GetStatusBar().SetStatusText(msg, 0)
+
+ def _build_gui(self, vbox):
+
+ def _form_set_freq(kv):
+ return self.set_freq(kv['freq'])
+
+ vbox.Add(self.scope.win, 10, wx.EXPAND)
+
+ #self._build_subpanel(vbox)
+
+ def _build_subpanel(self, vbox_arg):
+ # build a secondary information panel (sometimes hidden)
+
+ # FIXME figure out how to have this be a subpanel that is always
+ # created, but has its visibility controlled by foo.Show(True/False)
+
+ def _form_set_decim(kv):
+ return self.set_decim(kv['decim'])
+
+ if not(self.show_debug_info):
+ return
+
+ panel = self.panel
+ vbox = vbox_arg
+ myform = self.myform
+
+ #panel = wx.Panel(self.panel, -1)
+ #vbox = wx.BoxSizer(wx.VERTICAL)
+
+ hbox = wx.BoxSizer(wx.HORIZONTAL)
+ hbox.Add((5,0), 0)
+
+ myform['decim'] = form.int_field(
+ parent=panel, sizer=hbox, label="Decim",
+ callback=myform.check_input_and_call(_form_set_decim,
self._set_status_msg))
+
+ hbox.Add((5,0), 1)
+ myform['address@hidden'] = form.static_float_field(
+ parent=panel, sizer=hbox, label="address@hidden")
+
+ hbox.Add((5,0), 1)
+ myform['dbname'] = form.static_text_field(
+ parent=panel, sizer=hbox)
+
+ hbox.Add((5,0), 1)
+ myform['baseband'] = form.static_float_field(
+ parent=panel, sizer=hbox, label="Analog BB")
+
+ hbox.Add((5,0), 1)
+ myform['ddc'] = form.static_float_field(
+ parent=panel, sizer=hbox, label="DDC")
+
+ hbox.Add((5,0), 0)
+ vbox.Add(hbox, 0, wx.EXPAND)
+
+
+def main ():
+ app = stdgui.stdapp(app_flow_graph, "Audio FFT", nstatus=1)
+ app.MainLoop()
+
+if __name__ == '__main__':
+ main ()
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/gmsk2/tunnel.py
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/gmsk2/tunnel.py
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gnuradio-examples/python/gmsk2/tunnel.py
2006-08-25 23:11:47 UTC (rev 3416)
@@ -88,17 +88,18 @@
class my_graph(gr.flow_graph):
- def __init__(self, mod_class, demod_class, tx_subdev_spec, rx_subdev_spec,
- bitrate, decim_rate, interp_rate, spb,
- bt, rx_callback, options):
+ def __init__(self, mod_class, demod_class,
+ tx_subdev_spec, rx_subdev_spec,
+ rx_callback,
+ options, kwargs):
gr.flow_graph.__init__(self)
self.txpath = transmit_path(self, mod_class, tx_subdev_spec,
- bitrate, interp_rate, spb,
- bt, options)
+ options.bitrate, options.interp,
options.spb,
+ options.tx_gain, options, kwargs)
self.rxpath = receive_path(self, demod_class, rx_subdev_spec,
- bitrate, decim_rate, spb,
- rx_callback, options)
+ options.bitrate, options.decim, options.spb,
+ rx_callback, options, {})
def send_pkt(self, payload='', eof=False):
return self.txpath.send_pkt(payload, eof)
@@ -181,23 +182,28 @@
parser = OptionParser (option_class=eng_option)
parser.add_option("-f", "--freq", type="eng_float", default=423.1e6,
- help="set Tx and Rx frequency to FREQ
[default=%default]", metavar="FREQ")
+ help="set Tx and Rx frequency to FREQ
[default=%default]",
+ metavar="FREQ")
parser.add_option("-r", "--bitrate", type="eng_float", default=None,
help="specify bitrate. spb and interp will be derived.")
parser.add_option("-g", "--rx-gain", type="eng_float", default=27,
help="set rx gain")
+ parser.add_option("-p", "--tx-gain", type="eng_float", default=100,
+ help="set tx gain")
parser.add_option("-T", "--tx-subdev-spec", type="subdev", default=None,
help="select USRP Tx side A or B")
parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None,
help="select USRP Rx side A or B")
- parser.add_option("-S", "--spb", type="int", default=None, help="set
samples/baud [default=%default]")
+ parser.add_option("-S", "--spb", type="int", default=None,
+ help="set samples/baud [default=%default]")
parser.add_option("-d", "--decim", type="intx", default=None,
help="set fpga decim rate to DECIM [default=%default]")
parser.add_option("-i", "--interp", type="intx", default=None,
help="set fpga interpolation rate to INTERP
[default=%default]")
parser.add_option("-c", "--carrier-threshold", type="eng_float",
default=30,
help="set carrier detect threshold (dB)
[default=%default]")
- parser.add_option("", "--bt", type="float", default=0.3, help="set
bandwidth-time product [default=%default]")
+ parser.add_option("", "--bt", type="float", default=0.3,
+ help="set bandwidth-time product [default=%default]")
parser.add_option("","--tun-device-filename", default="/dev/net/tun",
help="path to tun device file [default=%default]")
parser.add_option("-v","--verbose", action="store_true", default=False)
@@ -211,6 +217,10 @@
if options.freq < 1e6:
options.freq *= 1e6
+ mod_kwargs = {
+ 'bt' : options.bt,
+ }
+
# open the TUN/TAP interface
(tun_fd, tun_ifname) = open_tun_interface(options.tun_device_filename)
@@ -244,9 +254,8 @@
# build the graph (PHY)
fg = my_graph(blks.gmsk2_mod, blks.gmsk2_demod,
options.tx_subdev_spec, options.rx_subdev_spec,
- options.bitrate, options.decim, options.interp,
- options.spb, options.bt, mac.phy_rx_callback,
- options)
+ mac.phy_rx_callback,
+ options, mod_kwargs)
mac.set_flow_graph(fg) # give the MAC a handle for the PHY
@@ -269,6 +278,7 @@
print "Failed to set Rx frequency to %s" %
(eng_notation.num_to_str(options.freq),)
raise SystemExit
+ print "Tx gain: ", options.tx_gain
fg.rxpath.set_gain(options.rx_gain)
print "Rx gain_range: ", fg.rxpath.subdev.gain_range(), " using",
fg.rxpath.gain
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/gr-trellis/src/lib/Makefile.am
===================================================================
---
gnuradio/branches/developers/jcorgan/ticket-28/gr-trellis/src/lib/Makefile.am
2006-08-25 23:09:24 UTC (rev 3415)
+++
gnuradio/branches/developers/jcorgan/ticket-28/gr-trellis/src/lib/Makefile.am
2006-08-25 23:11:47 UTC (rev 3416)
@@ -82,7 +82,7 @@
$(GNURADIO_CORE_LIBS) \
-lstdc++
-trellis.cc trellis.py: $(ALL_IFILES)
+trellis.cc trellis.py: $(ALL_IFILES) $(grinclude_HEADERS)
$(SWIG) $(SWIGPYTHONARGS) -module trellis -o trellis.cc $(LOCAL_IFILES)
# These headers get installed in ${prefix}/include/gnuradio
Modified:
gnuradio/branches/developers/jcorgan/ticket-28/usrp/host/apps/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/ticket-28/usrp/host/apps/Makefile.am
2006-08-25 23:09:24 UTC (rev 3415)
+++ gnuradio/branches/developers/jcorgan/ticket-28/usrp/host/apps/Makefile.am
2006-08-25 23:11:47 UTC (rev 3416)
@@ -21,7 +21,7 @@
include $(top_srcdir)/Makefile.common
-INCLUDES = $(USRP_INCLUDES)
+INCLUDES = $(USRP_INCLUDES) $(BOOST_CFLAGS)
USRP_LIB = $(top_builddir)/usrp/host/lib/libusrp.la
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r3416 - in gnuradio/branches/developers/jcorgan/ticket-28: gnuradio-core/src/lib/runtime gnuradio-core/src/python/gnuradio/gr gnuradio-examples/python/audio gnuradio-examples/python/gmsk2 gr-trellis/src/lib usrp/host/apps,
jcorgan <=