burst tagger: add multiplier parameter
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user