Thank you very much Marcus, Michael, Abin, and Ron, really appreciate your responses.
To give some context, I just started designing a prototype reader to implement a custom protocol for backscatter neural implants; very excited to build my platform with GNU-radio :)
After reading all the information from your responses and links provided, I still have a problem with my implementation. According to the buffer sizes that you mentioned, I should not have this problem, but
I think I am missing something. I may need to re-design my system/flow-graph, but I would like to get a last advice/help, if possible. Thanks in advance!
I want my block Decoder to consume_each(>8900) but I get overflows "D" messages. See details below
I have 2 general out of tree blocks: Gate and Decoder.
They both have:
ninput_items_required[0] = noutput_items;
const gr_complex *in = (const gr_complex *) input_items[0];
gr_complex *out = (gr_complex *) output_items[0];
gr_complex *out = (gr_complex *) output_items[0];
The idea is that I want the block Decoder to only process the input samples when I have received k samples. Let's set k=~8900
So, at the Decoder block general_work(), I set consume_each(0) until ninput_items[0]>=k.
Basically, at the Decoder general_work() I have the following (just a overview, not pseudo-code):
if (ninput_items[0] <k)
//do nothing
//consume_each(0)
else
// process the input samples
//consume_each(k)
My problem is that if I set k~8900, I get 'D' messages on the terminal.
And one interesting? thing happens. When ninput_items[0] gets close to k=8500 (or higher value), is when I start getting 'D', and after
that ninput_items[0] = 800, no matter the value of k.
Thank you.
Cheers
Laura.
On Fri, Aug 30, 2019 at 7:29 AM Müller, Marcus (CEL) <mueller@kit.edu> wrote:
Hi Ron,
just because I think this might be interesting to people dealing with
really high rates:
The maximum size is typically limited by the size of mmap'able memory
that you can allocate; that depends on the circular buffer factory
used:
For the posix shared memory thing, I don't think anything is stopping
you from using "memory space size" order amounts of buffer.
For anonymous file-backed mmap'ed buffers, I'd expect that we haven't
addressed the possibility of using more than 32 bit addresses, so
somewhere around 2 GB you'd find your upper limit.
Best regards,
Marcus
On Fri, 2019-08-30 at 06:20 -0700, Ron Economos wrote:
> Just to put a number on this question, the DVB-T2 transmitter uses up to 16 Megabyte buffers between blocks. I'm not sure what the absolute maximum is, but 16 Megabytes should cover most applications.
> The DVB-T2 blocks use set_output_multiple() in conjunction with forecast() to allocate these large buffers.
> Ron
> On 8/28/19 11:46, Laura Arjona wrote:
> > Hello GNURadio community,
> >
> > Does anyone know what is the maximum number of input items that an Out Of Tree block can consume on each input stream?
> >
> > consume_each(consumed) --> what is the maximum value that the variable consumed can take?
> >
> > Thank you very much.
> >
> >
> > --
> > Laura Arjona
> > Washington Research Foundation Innovation Postdoctoral Fellow in Neuroengineering
> >
> > Paul G. Allen School of Computer Science & Engineering
> > 185 E Stevens Way NE
> > University of Washington
> > Seattle, WA 98195-2350
> >
> >
> > _______________________________________________
> > Discuss-gnuradio mailing list
> > Discuss-gnuradio@gnu.org
> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
--
Laura Arjona
Washington Research Foundation Innovation Postdoctoral Fellow in Neuroengineering
Paul G. Allen School of Computer Science & Engineering
185 E Stevens Way NE
University of Washington
Seattle, WA 98195-2350
No comments:
Post a Comment