diff --git a/gr-jay/grc/jay_peak_detect.xml b/gr-jay/grc/jay_peak_detect.xml
index a23ab2a..8eb14b3 100644
--- a/gr-jay/grc/jay_peak_detect.xml
+++ b/gr-jay/grc/jay_peak_detect.xml
@@ -74,4 +74,9 @@
float
$vlen
+
+ pbox
+ float
+ $vlen
+
diff --git a/gr-jay/lib/peak_detect_impl.cc b/gr-jay/lib/peak_detect_impl.cc
index a7cb4ac..19092c2 100644
--- a/gr-jay/lib/peak_detect_impl.cc
+++ b/gr-jay/lib/peak_detect_impl.cc
@@ -41,7 +41,7 @@ namespace gr {
peak_detect_impl::peak_detect_impl(int vlen, float framerate, float peak_height_min, int peak_width_min, int peak_width_max, float alpha_s, float alpha_m)
: gr::sync_block("peak_detect"
, gr::io_signature::make(1, 1, vlen*sizeof(float))
- , gr::io_signature::make(1, 1, vlen*sizeof(float)))
+ , gr::io_signature::make(2, 2, vlen*sizeof(float)))
, m_framerate (framerate)
, m_peak_height_min (peak_height_min)
, m_peak_width_min (peak_width_min)
@@ -136,10 +136,14 @@ namespace gr {
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
+ const int DATA = 0;
+ const int PBOX = 1;
+
int nitems_per_block = this->output_signature()->sizeof_stream_item(0)/sizeof(float);
- float *iptr = (float *)input_items[0];
- float *optr = (float *)output_items[0];
+ float *iptr = (float *)input_items[DATA];
+ float *optr_data = (float *)output_items[DATA];
+ float *optr_pbox = (float *)output_items[PBOX];
for (int k = 0; k < noutput_items; k++)
{
@@ -195,7 +199,6 @@ namespace gr {
// Create peak distances by subtracting Xm
float Xd = m_pX[i]-m_pXm[i];
m_pXd[i] = Xd;
-// *(optr++) = Xd;
}
// -----------------------------------------------------------------
@@ -360,7 +363,8 @@ namespace gr {
// -----------------------------------------------------------------
for (int i = 0; i < nitems_per_block; i++)
{
- *(optr++) = m_pPeakBox_abs[i];
+ *(optr_data++) = m_pX[i];
+ *(optr_pbox++) = m_pPeakBox_abs[i];
}
// -----------------------------------------------------------------
@@ -371,10 +375,10 @@ namespace gr {
// Create peak tags
pmt::pmt_t tag_key = pmt::string_to_symbol("id");
pmt::pmt_t tag_value = pmt::from_long(i);
- add_item_tag(0, nitems_written(0) + m_pPeakPos_final[i], tag_key, tag_value, m_tag_id);
+ add_item_tag(DATA, nitems_written(DATA) + m_pPeakPos_final[i], tag_key, tag_value, m_tag_id);
tag_key = pmt::string_to_symbol("pos");
tag_value = pmt::from_long(m_pPeakPos_final[i]);
- add_item_tag(0, nitems_written(0) + m_pPeakPos_final[i], tag_key, tag_value, m_tag_id);
+ add_item_tag(DATA, nitems_written(DATA) + m_pPeakPos_final[i], tag_key, tag_value, m_tag_id);
}
m_frameCount++;