From 9ae1cbddbc47a96a202507cce040a71f2f26db22 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 11 Jan 2019 17:13:28 +0000 Subject: [PATCH] -add feeding buffer for PocSAC-decoder git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@409 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- gr-jay/lib/preamble_sync_impl.cc | 13 ++++++++++++- gr-jay/lib/preamble_sync_impl.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gr-jay/lib/preamble_sync_impl.cc b/gr-jay/lib/preamble_sync_impl.cc index 84bafcc..a2e7163 100644 --- a/gr-jay/lib/preamble_sync_impl.cc +++ b/gr-jay/lib/preamble_sync_impl.cc @@ -48,6 +48,7 @@ preamble_sync_impl::preamble_sync_impl() , m_wordCount(0) , m_wordSize(1) , m_dataCount(0) +, bufferWi(0) { } @@ -203,8 +204,18 @@ int preamble_sync_impl::general_work (int noutput_items, gr_vector_int &ninput_i // each input stream. consume_each (i); + memcpy(&buffer[bufferWi], out, j); + + bufferWi += j; + + if (bufferWi >= sizeof(buffer)/2) + { + size_t numProcessed = dec.process(buffer, bufferWi); + bufferWi -= numProcessed; + memcpy(buffer, &buffer[numProcessed], bufferWi); + } + // Tell runtime system how many output items we produced. - dec.process(out, j); return j; } diff --git a/gr-jay/lib/preamble_sync_impl.h b/gr-jay/lib/preamble_sync_impl.h index a59b647..f1e93ba 100644 --- a/gr-jay/lib/preamble_sync_impl.h +++ b/gr-jay/lib/preamble_sync_impl.h @@ -52,6 +52,8 @@ class preamble_sync_impl : public preamble_sync size_t m_wordCount; size_t m_wordSize; size_t m_dataCount; + uint8_t buffer[256]; + size_t bufferWi; PocsagDecoder dec; public: