summaryrefslogtreecommitdiff
path: root/gnuradio-core/src
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-core/src')
-rw-r--r--gnuradio-core/src/lib/general/CMakeLists.txt1
-rw-r--r--gnuradio-core/src/lib/general/Makefile.am3
-rw-r--r--gnuradio-core/src/lib/general/general.i2
-rw-r--r--gnuradio-core/src/lib/general/general_generated.i20
-rw-r--r--gnuradio-core/src/lib/gengen/.gitignore30
-rw-r--r--gnuradio-core/src/lib/gengen/CMakeLists.txt2
-rw-r--r--gnuradio-core/src/lib/gengen/Makefile.am6
-rw-r--r--gnuradio-core/src/lib/gengen/Makefile.gen30
-rwxr-xr-xgnuradio-core/src/lib/gengen/generate_common.py6
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_X.cc.t (renamed from gnuradio-core/src/lib/general/gr_probe_signal_f.cc)23
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_X.h.t (renamed from gnuradio-core/src/lib/general/gr_probe_signal_f.h)30
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_X.i.t (renamed from gnuradio-core/src/lib/general/gr_probe_signal_f.i)12
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_vX.cc.t59
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_vX.h.t62
-rw-r--r--gnuradio-core/src/lib/gengen/gr_probe_signal_vX.i.t32
-rw-r--r--gnuradio-core/src/python/gnuradio/gr/Makefile.am1
-rw-r--r--gnuradio-core/src/python/gnuradio/gr/qa_probe_signal.py67
17 files changed, 346 insertions, 40 deletions
diff --git a/gnuradio-core/src/lib/general/CMakeLists.txt b/gnuradio-core/src/lib/general/CMakeLists.txt
index 2bc639cd3..ee6e4c4e6 100644
--- a/gnuradio-core/src/lib/general/CMakeLists.txt
+++ b/gnuradio-core/src/lib/general/CMakeLists.txt
@@ -252,7 +252,6 @@ set(gr_core_general_triple_threats
gr_probe_avg_mag_sqrd_c
gr_probe_avg_mag_sqrd_cf
gr_probe_avg_mag_sqrd_f
- gr_probe_signal_f
gr_pwr_squelch_cc
gr_pwr_squelch_ff
gr_quadrature_demod_cf
diff --git a/gnuradio-core/src/lib/general/Makefile.am b/gnuradio-core/src/lib/general/Makefile.am
index 5b4a702e1..ba1f686ab 100644
--- a/gnuradio-core/src/lib/general/Makefile.am
+++ b/gnuradio-core/src/lib/general/Makefile.am
@@ -117,7 +117,6 @@ libgeneral_la_SOURCES = \
gr_probe_avg_mag_sqrd_c.cc \
gr_probe_avg_mag_sqrd_cf.cc \
gr_probe_avg_mag_sqrd_f.cc \
- gr_probe_signal_f.cc \
gr_pwr_squelch_cc.cc \
gr_pwr_squelch_ff.cc \
gr_quadrature_demod_cf.cc \
@@ -279,7 +278,6 @@ grinclude_HEADERS = \
gr_probe_avg_mag_sqrd_c.h \
gr_probe_avg_mag_sqrd_cf.h \
gr_probe_avg_mag_sqrd_f.h \
- gr_probe_signal_f.h \
gr_pwr_squelch_cc.h \
gr_pwr_squelch_ff.h \
gr_quadrature_demod_cf.h \
@@ -443,7 +441,6 @@ swiginclude_HEADERS = \
gr_probe_avg_mag_sqrd_c.i \
gr_probe_avg_mag_sqrd_cf.i \
gr_probe_avg_mag_sqrd_f.i \
- gr_probe_signal_f.i \
gr_pwr_squelch_cc.i \
gr_pwr_squelch_ff.i \
gr_quadrature_demod_cf.i \
diff --git a/gnuradio-core/src/lib/general/general.i b/gnuradio-core/src/lib/general/general.i
index 89738b01a..fcf60c927 100644
--- a/gnuradio-core/src/lib/general/general.i
+++ b/gnuradio-core/src/lib/general/general.i
@@ -92,7 +92,6 @@
#include <gr_probe_avg_mag_sqrd_c.h>
#include <gr_probe_avg_mag_sqrd_cf.h>
#include <gr_probe_avg_mag_sqrd_f.h>
-#include <gr_probe_signal_f.h>
#include <gr_regenerate_bb.h>
#include <gr_pa_2x2_phase_combiner.h>
#include <gr_kludge_copy.h>
@@ -214,7 +213,6 @@
%include "gr_probe_avg_mag_sqrd_c.i"
%include "gr_probe_avg_mag_sqrd_cf.i"
%include "gr_probe_avg_mag_sqrd_f.i"
-%include "gr_probe_signal_f.i"
%include "gr_regenerate_bb.i"
%include "gr_pa_2x2_phase_combiner.i"
%include "gr_kludge_copy.i"
diff --git a/gnuradio-core/src/lib/general/general_generated.i b/gnuradio-core/src/lib/general/general_generated.i
index e12f2b0ec..89b7e1776 100644
--- a/gnuradio-core/src/lib/general/general_generated.i
+++ b/gnuradio-core/src/lib/general/general_generated.i
@@ -51,6 +51,16 @@
#include <gr_packed_to_unpacked_bb.h>
#include <gr_packed_to_unpacked_ii.h>
#include <gr_packed_to_unpacked_ss.h>
+#include <gr_probe_signal_b.h>
+#include <gr_probe_signal_s.h>
+#include <gr_probe_signal_i.h>
+#include <gr_probe_signal_f.h>
+#include <gr_probe_signal_c.h>
+#include <gr_probe_signal_vb.h>
+#include <gr_probe_signal_vs.h>
+#include <gr_probe_signal_vi.h>
+#include <gr_probe_signal_vf.h>
+#include <gr_probe_signal_vc.h>
#include <gr_sig_source_c.h>
#include <gr_sig_source_f.h>
#include <gr_sig_source_i.h>
@@ -123,6 +133,16 @@
%include <gr_packed_to_unpacked_bb.i>
%include <gr_packed_to_unpacked_ii.i>
%include <gr_packed_to_unpacked_ss.i>
+%include <gr_probe_signal_b.i>
+%include <gr_probe_signal_s.i>
+%include <gr_probe_signal_i.i>
+%include <gr_probe_signal_f.i>
+%include <gr_probe_signal_c.i>
+%include <gr_probe_signal_vb.i>
+%include <gr_probe_signal_vs.i>
+%include <gr_probe_signal_vi.i>
+%include <gr_probe_signal_vf.i>
+%include <gr_probe_signal_vc.i>
%include <gr_sig_source_c.i>
%include <gr_sig_source_f.i>
%include <gr_sig_source_i.i>
diff --git a/gnuradio-core/src/lib/gengen/.gitignore b/gnuradio-core/src/lib/gengen/.gitignore
index b91d2f197..2f53eba9a 100644
--- a/gnuradio-core/src/lib/gengen/.gitignore
+++ b/gnuradio-core/src/lib/gengen/.gitignore
@@ -293,6 +293,36 @@
/gr_peak_detector_ss.h
/gr_peak_detector_ss.i
/gr_prefix.cc
+/gr_probe_signal_b.cc
+/gr_probe_signal_b.h
+/gr_probe_signal_b.i
+/gr_probe_signal_s.cc
+/gr_probe_signal_s.h
+/gr_probe_signal_s.i
+/gr_probe_signal_i.cc
+/gr_probe_signal_i.h
+/gr_probe_signal_i.i
+/gr_probe_signal_f.cc
+/gr_probe_signal_f.h
+/gr_probe_signal_f.i
+/gr_probe_signal_c.cc
+/gr_probe_signal_c.h
+/gr_probe_signal_c.i
+/gr_probe_signal_vb.cc
+/gr_probe_signal_vb.h
+/gr_probe_signal_vb.i
+/gr_probe_signal_vs.cc
+/gr_probe_signal_vs.h
+/gr_probe_signal_vs.i
+/gr_probe_signal_vi.cc
+/gr_probe_signal_vi.h
+/gr_probe_signal_vi.i
+/gr_probe_signal_vf.cc
+/gr_probe_signal_vf.h
+/gr_probe_signal_vf.i
+/gr_probe_signal_vc.cc
+/gr_probe_signal_vc.h
+/gr_probe_signal_vc.i
/gr_sample_and_hold_bb.cc
/gr_sample_and_hold_bb.h
/gr_sample_and_hold_bb.i
diff --git a/gnuradio-core/src/lib/gengen/CMakeLists.txt b/gnuradio-core/src/lib/gengen/CMakeLists.txt
index 98b149e97..8a43a8880 100644
--- a/gnuradio-core/src/lib/gengen/CMakeLists.txt
+++ b/gnuradio-core/src/lib/gengen/CMakeLists.txt
@@ -84,6 +84,8 @@ expand_h_cc_i(gr_vector_source_X b s i f c)
expand_h_cc_i(gr_vector_sink_X b s i f c)
expand_h_cc_i(gr_noise_source_X s i f c)
expand_h_cc_i(gr_sig_source_X s i f c)
+expand_h_cc_i(gr_probe_signal_X b s i f c)
+expand_h_cc_i(gr_probe_signal_vX b s i f c)
expand_h_cc_i(gr_add_const_XX ss ii ff cc sf)
expand_h_cc_i(gr_multiply_const_XX ss ii)
diff --git a/gnuradio-core/src/lib/gengen/Makefile.am b/gnuradio-core/src/lib/gengen/Makefile.am
index 5fbb6f52c..e2f65c5da 100644
--- a/gnuradio-core/src/lib/gengen/Makefile.am
+++ b/gnuradio-core/src/lib/gengen/Makefile.am
@@ -77,6 +77,12 @@ core_generator = \
gr_peak_detector_XX.cc.t \
gr_peak_detector_XX.h.t \
gr_peak_detector_XX.i.t \
+ gr_probe_signal_X.cc.t \
+ gr_probe_signal_X.h.t \
+ gr_probe_signal_X.i.t \
+ gr_probe_signal_vX.cc.t \
+ gr_probe_signal_vX.h.t \
+ gr_probe_signal_vX.i.t \
gr_sample_and_hold_XX.cc.t \
gr_sample_and_hold_XX.h.t \
gr_sample_and_hold_XX.i.t \
diff --git a/gnuradio-core/src/lib/gengen/Makefile.gen b/gnuradio-core/src/lib/gengen/Makefile.gen
index db260585f..b4a255dc0 100644
--- a/gnuradio-core/src/lib/gengen/Makefile.gen
+++ b/gnuradio-core/src/lib/gengen/Makefile.gen
@@ -72,6 +72,16 @@ GENERATED_H = \
gr_peak_detector_fb.h \
gr_peak_detector_ib.h \
gr_peak_detector_sb.h \
+ gr_probe_signal_b.h \
+ gr_probe_signal_s.h \
+ gr_probe_signal_i.h \
+ gr_probe_signal_f.h \
+ gr_probe_signal_c.h \
+ gr_probe_signal_vb.h \
+ gr_probe_signal_vs.h \
+ gr_probe_signal_vi.h \
+ gr_probe_signal_vf.h \
+ gr_probe_signal_vc.h \
gr_sample_and_hold_bb.h \
gr_sample_and_hold_ff.h \
gr_sample_and_hold_ii.h \
@@ -172,6 +182,16 @@ GENERATED_I = \
gr_peak_detector_fb.i \
gr_peak_detector_ib.i \
gr_peak_detector_sb.i \
+ gr_probe_signal_b.i \
+ gr_probe_signal_s.i \
+ gr_probe_signal_i.i \
+ gr_probe_signal_f.i \
+ gr_probe_signal_c.i \
+ gr_probe_signal_vb.i \
+ gr_probe_signal_vs.i \
+ gr_probe_signal_vi.i \
+ gr_probe_signal_vf.i \
+ gr_probe_signal_vc.i \
gr_sample_and_hold_bb.i \
gr_sample_and_hold_ff.i \
gr_sample_and_hold_ii.i \
@@ -272,6 +292,16 @@ GENERATED_CC = \
gr_peak_detector_fb.cc \
gr_peak_detector_ib.cc \
gr_peak_detector_sb.cc \
+ gr_probe_signal_b.cc \
+ gr_probe_signal_s.cc \
+ gr_probe_signal_i.cc \
+ gr_probe_signal_f.cc \
+ gr_probe_signal_c.cc \
+ gr_probe_signal_vb.cc \
+ gr_probe_signal_vs.cc \
+ gr_probe_signal_vi.cc \
+ gr_probe_signal_vf.cc \
+ gr_probe_signal_vc.cc \
gr_sample_and_hold_bb.cc \
gr_sample_and_hold_ff.cc \
gr_sample_and_hold_ii.cc \
diff --git a/gnuradio-core/src/lib/gengen/generate_common.py b/gnuradio-core/src/lib/gengen/generate_common.py
index 6da2044e0..70f805711 100755
--- a/gnuradio-core/src/lib/gengen/generate_common.py
+++ b/gnuradio-core/src/lib/gengen/generate_common.py
@@ -33,7 +33,9 @@ ss_roots = [
'gr_vector_source_X',
'gr_vector_sink_X',
'gr_noise_source_X',
- 'gr_sig_source_X'
+ 'gr_sig_source_X',
+ 'gr_probe_signal_X',
+ 'gr_probe_signal_vX'
]
# regular blocks
@@ -83,6 +85,8 @@ def generate ():
expand_h_cc_i ('gr_add_const_XX', 'sf') # for MC4020
expand_h_cc_i ('gr_vector_sink_X', 'b')
expand_h_cc_i ('gr_vector_source_X', 'b')
+ expand_h_cc_i ('gr_probe_signal_X', 'b')
+ expand_h_cc_i ('gr_probe_signal_vX', 'b')
for r in ss_roots:
for s in ss_signatures:
expand_h_cc_i (r, s)
diff --git a/gnuradio-core/src/lib/general/gr_probe_signal_f.cc b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.cc.t
index ee1a18e89..d60a5126a 100644
--- a/gnuradio-core/src/lib/general/gr_probe_signal_f.cc
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.cc.t
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2005,2010 Free Software Foundation, Inc.
+ * Copyright 2005,2010,2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -23,38 +23,37 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-#include <gr_probe_signal_f.h>
+#include <@NAME@.h>
#include <gr_io_signature.h>
-gr_probe_signal_f_sptr
-gr_make_probe_signal_f()
+@NAME@_sptr
+gr_make_@BASE_NAME@()
{
- return gnuradio::get_initial_sptr(new gr_probe_signal_f());
+ return gnuradio::get_initial_sptr(new @NAME@());
}
-gr_probe_signal_f::gr_probe_signal_f ()
- : gr_sync_block ("probe_signal_f",
- gr_make_io_signature(1, 1, sizeof(float)),
+@NAME@::@NAME@ ()
+: gr_sync_block ("@BASE_NAME@",
+ gr_make_io_signature(1, 1, sizeof(@TYPE@)),
gr_make_io_signature(0, 0, 0)),
d_level(0)
{
}
-gr_probe_signal_f::~gr_probe_signal_f()
+@NAME@::~@NAME@()
{
}
int
-gr_probe_signal_f::work(int noutput_items,
+@NAME@::work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
- const float *in = (const float *) input_items[0];
+ const @TYPE@ *in = (const @TYPE@ *) input_items[0];
if (noutput_items > 0)
d_level = in[noutput_items-1];
return noutput_items;
}
-
diff --git a/gnuradio-core/src/lib/general/gr_probe_signal_f.h b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.h.t
index b99c76976..26a95b9b2 100644
--- a/gnuradio-core/src/lib/general/gr_probe_signal_f.h
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.h.t
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2005 Free Software Foundation, Inc.
+ * Copyright 2005, 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -19,40 +19,40 @@
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
-#ifndef INCLUDED_GR_PROBE_SIGNAL_F_H
-#define INCLUDED_GR_PROBE_SIGNAL_F_H
+#ifndef @GUARD_NAME@
+#define @GUARD_NAME@
#include <gr_core_api.h>
#include <gr_sync_block.h>
-class gr_probe_signal_f;
-typedef boost::shared_ptr<gr_probe_signal_f> gr_probe_signal_f_sptr;
+class @NAME@;
+typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
-GR_CORE_API gr_probe_signal_f_sptr
-gr_make_probe_signal_f ();
+GR_CORE_API @NAME@_sptr
+gr_make_@BASE_NAME@ ();
/*!
* \brief Sink that allows a sample to be grabbed from Python.
* \ingroup sink_blk
*/
-class GR_CORE_API gr_probe_signal_f : public gr_sync_block
+class GR_CORE_API @NAME@ : public gr_sync_block
{
- float d_level;
+ @TYPE@ d_level;
- friend GR_CORE_API gr_probe_signal_f_sptr
- gr_make_probe_signal_f();
+ friend GR_CORE_API @NAME@_sptr
+ gr_make_@BASE_NAME@();
- gr_probe_signal_f();
+ @NAME@();
public:
- ~gr_probe_signal_f();
+ ~@NAME@();
int work(int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
- float level() const { return d_level; }
+ @TYPE@ level() const { return d_level; }
};
-#endif /* INCLUDED_GR_PROBE_SIGNAL_F_H */
+#endif /* @GUARD_NAME@ */
diff --git a/gnuradio-core/src/lib/general/gr_probe_signal_f.i b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.i.t
index 4255e5dfd..3f1ef8ffd 100644
--- a/gnuradio-core/src/lib/general/gr_probe_signal_f.i
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_X.i.t
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2005 Free Software Foundation, Inc.
+ * Copyright 2005, 2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -20,13 +20,13 @@
* Boston, MA 02110-1301, USA.
*/
-GR_SWIG_BLOCK_MAGIC(gr,probe_signal_f);
+GR_SWIG_BLOCK_MAGIC(gr,@BASE_NAME@);
-gr_probe_signal_f_sptr
-gr_make_probe_signal_f ();
+@NAME@_sptr
+gr_make_@BASE_NAME@ ();
-class gr_probe_signal_f : public gr_sync_block
+class @NAME@ : public gr_sync_block
{
public:
- float level () const { return d_level; }
+ @TYPE@ level ();
};
diff --git a/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.cc.t b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.cc.t
new file mode 100644
index 000000000..712b55b9a
--- /dev/null
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.cc.t
@@ -0,0 +1,59 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2005,2010,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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <@NAME@.h>
+#include <gr_io_signature.h>
+#include <iostream>
+
+@NAME@_sptr
+gr_make_@BASE_NAME@(size_t size)
+{
+ return gnuradio::get_initial_sptr(new @NAME@(size));
+}
+
+@NAME@::@NAME@ (size_t size)
+: gr_sync_block ("@BASE_NAME@",
+ gr_make_io_signature(1, 1, size*sizeof(@TYPE@)),
+ gr_make_io_signature(0, 0, 0)),
+ d_level(size, 0), d_size(size)
+{
+}
+
+@NAME@::~@NAME@()
+{
+}
+
+int
+@NAME@::work(int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items)
+{
+ const @TYPE@ *in = (const @TYPE@ *) input_items[0];
+
+ for (int i=0; i<d_size; i++)
+ d_level[i] = in[(noutput_items-1)*d_size+i];
+
+ return noutput_items;
+}
diff --git a/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.h.t b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.h.t
new file mode 100644
index 000000000..3a7277b93
--- /dev/null
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.h.t
@@ -0,0 +1,62 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2005, 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.
+ */
+#ifndef @GUARD_NAME@
+#define @GUARD_NAME@
+
+#include <vector>
+
+#include <gr_core_api.h>
+#include <gr_sync_block.h>
+
+class @NAME@;
+typedef boost::shared_ptr<@NAME@> @NAME@_sptr;
+
+GR_CORE_API @NAME@_sptr
+gr_make_@BASE_NAME@ (size_t size);
+
+/*!
+ * \brief Sink that allows a sample to be grabbed from Python.
+ * \ingroup sink_blk
+ */
+class GR_CORE_API @NAME@ : public gr_sync_block
+{
+ std::vector<@TYPE@> d_level;
+
+ friend GR_CORE_API @NAME@_sptr
+ gr_make_@BASE_NAME@(size_t size);
+
+ @NAME@(size_t size);
+
+ size_t d_size;
+
+public:
+ ~@NAME@();
+
+ int work(int noutput_items,
+ gr_vector_const_void_star &input_items,
+ gr_vector_void_star &output_items);
+
+ std::vector<@TYPE@> level() const { return d_level; }
+
+};
+
+#endif /* @GUARD_NAME@ */
diff --git a/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.i.t b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.i.t
new file mode 100644
index 000000000..20191948a
--- /dev/null
+++ b/gnuradio-core/src/lib/gengen/gr_probe_signal_vX.i.t
@@ -0,0 +1,32 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2005, 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.
+ */
+
+GR_SWIG_BLOCK_MAGIC(gr,@BASE_NAME@);
+
+@NAME@_sptr
+gr_make_@BASE_NAME@ (size_t size);
+
+class @NAME@ : public gr_sync_block
+{
+public:
+ std::vector<@TYPE@> level ();
+};
diff --git a/gnuradio-core/src/python/gnuradio/gr/Makefile.am b/gnuradio-core/src/python/gnuradio/gr/Makefile.am
index 9853766f9..b1550fc57 100644
--- a/gnuradio-core/src/python/gnuradio/gr/Makefile.am
+++ b/gnuradio-core/src/python/gnuradio/gr/Makefile.am
@@ -90,6 +90,7 @@ noinst_PYTHON = \
qa_pll_freqdet.py \
qa_pll_refout.py \
qa_pn_correlator_cc.py \
+ qa_probe_signal.py \
qa_rational_resampler.py \
qa_sig_source.py \
qa_single_pole_iir.py \
diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_probe_signal.py b/gnuradio-core/src/python/gnuradio/gr/qa_probe_signal.py
new file mode 100644
index 000000000..ed0756f5b
--- /dev/null
+++ b/gnuradio-core/src/python/gnuradio/gr/qa_probe_signal.py
@@ -0,0 +1,67 @@
+#!/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 time
+
+from gnuradio import gr, gr_unittest
+
+class test_probe_signal (gr_unittest.TestCase):
+
+ def setUp (self):
+ self.tb = gr.top_block()
+
+ def tearDown (self):
+ self.tb = None
+
+ def test_001(self):
+
+ value = 12.3
+ repeats = 100
+ src_data = [value] * repeats
+
+ src = gr.vector_source_f(src_data)
+ dst = gr.probe_signal_f()
+
+ self.tb.connect(src, dst)
+ self.tb.run()
+ output = dst.level()
+ self.assertAlmostEqual(value, output, places=6)
+
+ def test_002(self):
+
+ vector_length = 10
+ repeats = 10
+ value = [0.5+i for i in range(0, vector_length)]
+ src_data = value * repeats
+
+ src = gr.vector_source_f(src_data)
+ s2v = gr.stream_to_vector(gr.sizeof_float, vector_length)
+ dst = gr.probe_signal_vf(vector_length)
+
+ self.tb.connect(src, s2v, dst)
+ self.tb.run()
+ output = dst.level()
+ self.assertEqual(len(output), vector_length)
+ self.assertAlmostEqual(value[3], output[3], places=6)
+
+if __name__ == '__main__':
+ gr_unittest.run(test_probe_signal, "test_probe_signal.xml")