From 2782a74fa535f43a72daaadeb99c594b49d8e3d1 Mon Sep 17 00:00:00 2001 From: Bastian Bloessl Date: Wed, 5 Jun 2013 07:40:34 +0200 Subject: [PATCH] burst tagger: add multiplier parameter --- grc/foo_burst_tagger.xml | 11 ++++++++++- include/foo/burst_tagger.h | 2 +- lib/burst_tagger_impl.cc | 12 +++++++----- lib/burst_tagger_impl.h | 4 +++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/grc/foo_burst_tagger.xml b/grc/foo_burst_tagger.xml index 4390f04..2401599 100644 --- a/grc/foo_burst_tagger.xml +++ b/grc/foo_burst_tagger.xml @@ -5,7 +5,7 @@ Foo import pmt import foo - foo.burst_tagger($tag_name) + foo.burst_tagger($tag_name, $mult) Tag Name @@ -14,6 +14,15 @@ raw + + Multiplier + mult + 1 + int + + + $mult > 0 + in complex diff --git a/include/foo/burst_tagger.h b/include/foo/burst_tagger.h index f42a95b..b48e118 100644 --- a/include/foo/burst_tagger.h +++ b/include/foo/burst_tagger.h @@ -31,7 +31,7 @@ namespace foo { public: typedef boost::shared_ptr sptr; - static sptr make(pmt::pmt_t tag_name); + static sptr make(pmt::pmt_t tag_name, unsigned int mult); }; } // namespace foo diff --git a/lib/burst_tagger_impl.cc b/lib/burst_tagger_impl.cc index 35f218c..eb9ccbf 100644 --- a/lib/burst_tagger_impl.cc +++ b/lib/burst_tagger_impl.cc @@ -25,12 +25,14 @@ namespace gr { namespace foo { -burst_tagger_impl::burst_tagger_impl(pmt::pmt_t tag_name) +burst_tagger_impl::burst_tagger_impl(pmt::pmt_t tag_name, + unsigned int mult) : gr::sync_block("burst_tagger", gr::io_signature::make(1, 1, sizeof(gr_complex)), gr::io_signature::make(1, 1, sizeof(gr_complex))), d_tag_name(tag_name), - d_copy(0) { + d_copy(0), + d_mult(mult) { } burst_tagger_impl::~burst_tagger_impl() { @@ -81,7 +83,7 @@ burst_tagger_impl::work(int noutput_items, GR_LOG_DEBUG(d_debug_log, "tags found"); tag_t tag = tags.front(); if(tag.offset == nitems_read(0)) { - d_copy = pmt::to_uint64(tag.value) * 128; + d_copy = pmt::to_uint64(tag.value) * d_mult; GR_LOG_DEBUG(d_debug_log, boost::format("tag is at current offset, packet len %1%") % d_copy); add_sob(nitems_written(0)); } else { @@ -109,8 +111,8 @@ burst_tagger_impl::work(int noutput_items, } } -burst_tagger::sptr burst_tagger::make(pmt::pmt_t tag_name) { - return gnuradio::get_initial_sptr(new burst_tagger_impl(tag_name)); +burst_tagger::sptr burst_tagger::make(pmt::pmt_t tag_name, unsigned int mult) { + return gnuradio::get_initial_sptr(new burst_tagger_impl(tag_name, mult)); } diff --git a/lib/burst_tagger_impl.h b/lib/burst_tagger_impl.h index 38b4bd2..d2dcb6b 100644 --- a/lib/burst_tagger_impl.h +++ b/lib/burst_tagger_impl.h @@ -33,9 +33,11 @@ namespace foo { pmt::pmt_t d_tag_name; int d_copy; + unsigned int d_mult; public: - burst_tagger_impl(pmt::pmt_t tag_name); + burst_tagger_impl(pmt::pmt_t tag_name, + unsigned int mult); ~burst_tagger_impl(); int work(int noutput_items,