diff --git a/gr-jay/lib/peak_detect_impl.cc b/gr-jay/lib/peak_detect_impl.cc index 78297c4..586fba7 100644 --- a/gr-jay/lib/peak_detect_impl.cc +++ b/gr-jay/lib/peak_detect_impl.cc @@ -53,7 +53,10 @@ namespace gr { memset(m_pPeak, 0, vlen*sizeof(int)); memset(m_pXs, 0, vlen*sizeof(float)); memset(m_pXm, 0, vlen*sizeof(float)); - + + std::stringstream str; + str << name() << unique_id(); + m_tag_id = pmt::string_to_symbol(str.str()); } /* @@ -91,11 +94,6 @@ namespace gr { { int nitems_per_block = this->output_signature()->sizeof_stream_item(0)/sizeof(float); - fprintf(stderr, "Hallo\n"); - fprintf(stderr, "noutput_items = %u\n", (int)noutput_items); - fprintf(stderr, "ninput_items = %u\n", (int)input_items.size()); - fprintf(stderr, "nitems_per_block = %u\n", (int)nitems_per_block); - float *iptr = (float *)input_items[0]; float *optr = (float *)output_items[0]; @@ -104,6 +102,11 @@ namespace gr { // Initialization on first frame if (m_frameCount == 0) { + fprintf(stderr, "Peak Detector: Initialize\n"); + fprintf(stderr, "noutput_items = %u\n", (int)noutput_items); + fprintf(stderr, "ninput_items = %u\n", (int)input_items.size()); + fprintf(stderr, "nitems_per_block = %u\n", (int)nitems_per_block); + float xmean = mean(iptr, nitems_per_block); fill(m_pXs, nitems_per_block, xmean); fill(m_pXm, nitems_per_block, xmean); @@ -134,7 +137,16 @@ namespace gr { } } - m_pPeak[i] = (int)((x-m_pXm[i]) > 10.f); + float peak_dist = x-m_pXm[i]; + int peak = (int)(peak_dist > 10.f); + m_pPeak[i] = peak; + + if (peak) + { + pmt::pmt_t tag_key = pmt::string_to_symbol("peak"); + pmt::pmt_t tag_value = pmt::from_float(peak_dist); + add_item_tag(0, nitems_written(0) + i, tag_key, tag_value, m_tag_id); + } *optr++ = x-m_pXm[i]; } diff --git a/gr-jay/lib/peak_detect_impl.h b/gr-jay/lib/peak_detect_impl.h index 5000c67..729cde6 100644 --- a/gr-jay/lib/peak_detect_impl.h +++ b/gr-jay/lib/peak_detect_impl.h @@ -36,7 +36,8 @@ namespace jay { float *m_pXs; float *m_pXm; uint64_t m_frameCount; - + pmt::pmt_t m_tag_id; + public: peak_detect_impl(float alpha_s, float alpha_m, int vlen); ~peak_detect_impl();