burst tagger: add multiplier parameter

This commit is contained in:
Bastian Bloessl
2013-06-05 07:40:34 +02:00
parent 0a927a07c2
commit 2782a74fa5
4 changed files with 21 additions and 8 deletions
+10 -1
View File
@@ -5,7 +5,7 @@
<category>Foo</category> <category>Foo</category>
<import>import pmt</import> <import>import pmt</import>
<import>import foo</import> <import>import foo</import>
<make>foo.burst_tagger($tag_name)</make> <make>foo.burst_tagger($tag_name, $mult)</make>
<param> <param>
<name>Tag Name</name> <name>Tag Name</name>
@@ -14,6 +14,15 @@
<type>raw</type> <type>raw</type>
</param> </param>
<param>
<name>Multiplier</name>
<key>mult</key>
<value>1</value>
<type>int</type>
</param>
<check>$mult > 0</check>
<sink> <sink>
<name>in</name> <name>in</name>
<type>complex</type> <type>complex</type>
+1 -1
View File
@@ -31,7 +31,7 @@ namespace foo {
public: public:
typedef boost::shared_ptr<burst_tagger> sptr; typedef boost::shared_ptr<burst_tagger> sptr;
static sptr make(pmt::pmt_t tag_name); static sptr make(pmt::pmt_t tag_name, unsigned int mult);
}; };
} // namespace foo } // namespace foo
+7 -5
View File
@@ -25,12 +25,14 @@
namespace gr { namespace gr {
namespace foo { 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::sync_block("burst_tagger",
gr::io_signature::make(1, 1, sizeof(gr_complex)), gr::io_signature::make(1, 1, sizeof(gr_complex)),
gr::io_signature::make(1, 1, sizeof(gr_complex))), gr::io_signature::make(1, 1, sizeof(gr_complex))),
d_tag_name(tag_name), d_tag_name(tag_name),
d_copy(0) { d_copy(0),
d_mult(mult) {
} }
burst_tagger_impl::~burst_tagger_impl() { 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"); GR_LOG_DEBUG(d_debug_log, "tags found");
tag_t tag = tags.front(); tag_t tag = tags.front();
if(tag.offset == nitems_read(0)) { 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); GR_LOG_DEBUG(d_debug_log, boost::format("tag is at current offset, packet len %1%") % d_copy);
add_sob(nitems_written(0)); add_sob(nitems_written(0));
} else { } else {
@@ -109,8 +111,8 @@ burst_tagger_impl::work(int noutput_items,
} }
} }
burst_tagger::sptr burst_tagger::make(pmt::pmt_t 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)); return gnuradio::get_initial_sptr(new burst_tagger_impl(tag_name, mult));
} }
+3 -1
View File
@@ -33,9 +33,11 @@ namespace foo {
pmt::pmt_t d_tag_name; pmt::pmt_t d_tag_name;
int d_copy; int d_copy;
unsigned int d_mult;
public: public:
burst_tagger_impl(pmt::pmt_t tag_name); burst_tagger_impl(pmt::pmt_t tag_name,
unsigned int mult);
~burst_tagger_impl(); ~burst_tagger_impl();
int work(int noutput_items, int work(int noutput_items,